vue2-client 1.2.35 → 1.2.37-2
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/CHANGELOG.md +90 -80
- package/package.json +1 -1
- package/src/base-client/all.js +61 -59
- package/src/base-client/components/common/AmapMarker/AmapPointRendering.vue +104 -0
- package/src/base-client/components/common/AmapMarker/index.js +3 -0
- package/src/base-client/components/common/CreateQuery/CreateQuery.vue +38 -31
- package/src/base-client/components/common/ScrollList/SrcollList.vue +113 -113
- package/src/base-client/components/common/ScrollList/index.js +3 -3
- package/src/base-client/components/iot/DeviceDetailsView/DeviceDetailsView.vue +236 -230
- package/src/base-client/components/iot/DeviceDetailsView/part/DeviceDetailsException.vue +57 -57
- package/src/base-client/components/iot/DeviceDetailsView/part/DeviceDetailsRead.vue +131 -131
- package/src/base-client/components/ticket/TicketSubmitSuccessView/TicketSubmitSuccessView.vue +532 -532
- package/src/config/config.js +2 -0
- package/src/config/default/setting.config.js +34 -34
- package/src/layouts/AdminLayout.vue +2 -2
- package/src/layouts/tabs/TabsView.vue +6 -0
- package/src/pages/login/Login.vue +198 -198
- package/src/pages/resourceManage/resourceManageMain.vue +0 -1
- package/src/pages/system/ticket/index.vue +440 -440
- package/src/router/async/config.async.js +26 -26
- package/src/router/async/router.map.js +59 -59
- package/src/router/index.js +27 -27
- package/vue.config.js +143 -143
package/CHANGELOG.md
CHANGED
|
@@ -1,80 +1,90 @@
|
|
|
1
|
-
# Change Log
|
|
2
|
-
> 所有关于本项目的变化都在该文档里。
|
|
3
|
-
|
|
4
|
-
**##1.2.
|
|
5
|
-
-
|
|
6
|
-
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
-
|
|
11
|
-
-
|
|
12
|
-
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
-
|
|
17
|
-
-
|
|
18
|
-
|
|
19
|
-
**##1.2.
|
|
20
|
-
- 功能修改:
|
|
21
|
-
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
-
|
|
26
|
-
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
-
|
|
30
|
-
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
-
|
|
34
|
-
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
-
|
|
39
|
-
-
|
|
40
|
-
-
|
|
41
|
-
|
|
42
|
-
-
|
|
43
|
-
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
-
|
|
47
|
-
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
- 问题修复:
|
|
51
|
-
- [
|
|
52
|
-
-
|
|
53
|
-
- [
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
-
|
|
62
|
-
-
|
|
63
|
-
- [
|
|
64
|
-
-
|
|
65
|
-
|
|
66
|
-
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
-
|
|
71
|
-
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
-
|
|
75
|
-
- [
|
|
76
|
-
- [
|
|
77
|
-
|
|
78
|
-
**##1.
|
|
79
|
-
-
|
|
80
|
-
-
|
|
1
|
+
# Change Log
|
|
2
|
+
> 所有关于本项目的变化都在该文档里。
|
|
3
|
+
|
|
4
|
+
**##1.2.37 -2022-04-21 @张振宇**
|
|
5
|
+
- `CreateQuery.vue` 还原不小心删除的内容
|
|
6
|
+
- `CreateQuery.vue` 调整v_if的位置
|
|
7
|
+
|
|
8
|
+
**##1.2.36 -2022-04-21 @苗艳强**
|
|
9
|
+
- 样式修改:
|
|
10
|
+
- 修正了一处布局问题
|
|
11
|
+
- 布局配置:
|
|
12
|
+
- 默认开启 TabsHead 固定位置
|
|
13
|
+
|
|
14
|
+
**##1.2.35 -2022-04-13 @江超**
|
|
15
|
+
- 功能修改:
|
|
16
|
+
- [工单提交] 页面不再需要登录,而是通过路径传参获取信息
|
|
17
|
+
- 生成环境不再使用CDN加速
|
|
18
|
+
|
|
19
|
+
**##1.2.34 -2022-04-11 @张振宇**
|
|
20
|
+
- 功能修改:
|
|
21
|
+
- 文件上传组件完善
|
|
22
|
+
- [request.js] post请求可以自定义请求头参数了
|
|
23
|
+
- [.eslint] 不限制json结尾的逗号了
|
|
24
|
+
|
|
25
|
+
**##1.2.33 -2022-04-11 @朱子峰**
|
|
26
|
+
- 功能修改:
|
|
27
|
+
- [XFormTable]:临时表数据插入BUG修复,增加不需要数据初始化的判断
|
|
28
|
+
|
|
29
|
+
**##1.2.32 -2022-04-07 @朱子峰**
|
|
30
|
+
- 功能修改:
|
|
31
|
+
- [XFormTable]:新增判断,如果表名以##开始,则在查询时为其创建临时表
|
|
32
|
+
|
|
33
|
+
**##1.2.30 -1.2.31 -2022-04-02 @张振宇**
|
|
34
|
+
- 功能修改:
|
|
35
|
+
- 查询配置页面bug修改
|
|
36
|
+
- 表单配置页面bug修改
|
|
37
|
+
|
|
38
|
+
**##1.2.28 -2022-03-29 @朱子峰**
|
|
39
|
+
- 功能修改:
|
|
40
|
+
- [Cookie]:去除自定义Cookie
|
|
41
|
+
|
|
42
|
+
**##1.2.27 -2022-03-29 @朱子峰**
|
|
43
|
+
- 功能新增:
|
|
44
|
+
- [XAddNativeForm]:将XAddForm从模态框中抽取,用于页面直接展示Form
|
|
45
|
+
|
|
46
|
+
**##1.2.25 -2022-03-26 @江超**
|
|
47
|
+
- 功能修改:
|
|
48
|
+
- [查询配置生成]:表单[新增/修改场景]增加[version(版本号)]类型
|
|
49
|
+
- [api.js]:移除[跨域代理前缀]
|
|
50
|
+
- 问题修复:
|
|
51
|
+
- [查询配置生成]:修复修改已有查询配置时,部分数据显示状态不一致的问题
|
|
52
|
+
- [设备详情页]:修复设备抄表记录,异常记录查询报错的问题
|
|
53
|
+
- [XFormItem]:修复非懒加载搜索的下拉框显示问题
|
|
54
|
+
|
|
55
|
+
**##1.2.20 - 1.2.24 -2022-03-25 @朱子峰**
|
|
56
|
+
- 功能修改:
|
|
57
|
+
- [工单关闭/开始处理]:工单关闭和开始处理时,不由id来进行判断,改由姓名进行判断是否为同一个人
|
|
58
|
+
|
|
59
|
+
**##1.2.17 - 1.2.19 -2022-03-25 @朱子峰**
|
|
60
|
+
- 问题修复:
|
|
61
|
+
- [钉钉消息推送]:将类别字段从int修改为String,直接传字典中的值
|
|
62
|
+
- 功能修改:
|
|
63
|
+
- [问题描述]:如果用户没有填写描述,新增默认值:“该用户没有填写描述信息”
|
|
64
|
+
- [问题描述]:展示问题描述时,按时间倒序展示,最新的信息显示在最上面
|
|
65
|
+
|
|
66
|
+
**##1.2.16 -2022-03-25 @张振宇**
|
|
67
|
+
- 功能修改:
|
|
68
|
+
- [查询配置生成]:逻辑修改,取消选择组和顺序,用户新增数组字段时需要选择是否为根节点,根节点index为1,不是根节点得数据字段index默认为父节点index+1
|
|
69
|
+
|
|
70
|
+
**##1.2.9 - 1.2.15 -2022-03-24 @江超**
|
|
71
|
+
- 功能新增:
|
|
72
|
+
- [查询配置生成]:下拉框表单选择业务逻辑作为数据源时,可以选择数据源加载方式
|
|
73
|
+
- [XFormItem]:当数据源加载方式为懒加载搜索时,将渲染一个可以根据关键词实时查询的选择框
|
|
74
|
+
- 问题修复:
|
|
75
|
+
- [查询配置生成]:修复修改已有查询配置时,显示状态不一致的问题
|
|
76
|
+
- [指令详情页]:修复操作记录查询报错的问题
|
|
77
|
+
|
|
78
|
+
**##1.2.8 -2022-03-24 @江超**
|
|
79
|
+
- 问题修复:
|
|
80
|
+
- [登录页面]:修复登录后欢迎提示出现undefined的问题
|
|
81
|
+
- [查询配置生成]:修复修改表单查询方式下拉框报错的问题
|
|
82
|
+
|
|
83
|
+
**##1.2.7 -2022-03-24 @江超**
|
|
84
|
+
- 功能新增:
|
|
85
|
+
- [系统设置]:新增 [工单提交] 功能(submitTicket),用户在操作业务时如发现系统异常,可使用该功能反馈问题
|
|
86
|
+
- [登录页面]:登陆人部门为 [用户工单登记] 时会直接跳转到[工单提交]页面(在基于新架构的营收全面使用时,会取消该限制,并将[工单提交]作为常驻功能)
|
|
87
|
+
|
|
88
|
+
**##1.0.0 - 1.2.6 -2022-03-23 @陈栋扬**
|
|
89
|
+
- 初始化:
|
|
90
|
+
- 公共组件和配置抽取完成
|
package/package.json
CHANGED
package/src/base-client/all.js
CHANGED
|
@@ -1,59 +1,61 @@
|
|
|
1
|
-
import Vue from 'vue'
|
|
2
|
-
|
|
3
|
-
import CustomColumnsDrawer from '@vue2-client/base-client/components/common/CustomColumnsDrawer'
|
|
4
|
-
import InstructDetailsView from '@vue2-client/base-client/components/iot/InstructDetailsView'
|
|
5
|
-
import MeterDetailsView from '@vue2-client/base-client/components/iot/MeterDetailsView'
|
|
6
|
-
import CustomerDetailsView from '@vue2-client/base-client/components/iot/CustomerDetailsView'
|
|
7
|
-
import LogDetailsView from '@vue2-client/base-client/components/iot/LogDetailsView'
|
|
8
|
-
import WebmeterAnalysisView from '@vue2-client/base-client/components/iot/WebmeterAnalysisView'
|
|
9
|
-
import XCard from '@vue2-client/base-client/components/common/XCard/XCard'
|
|
10
|
-
import XFormCol from '@vue2-client/base-client/components/common/XFormCol'
|
|
11
|
-
import XBadge from '@vue2-client/base-client/components/common/XBadge'
|
|
12
|
-
import DataAnalysisView from '@vue2-client/base-client/components/iot/DataAnalysisView'
|
|
13
|
-
import DataAnalysisUser from '@vue2-client/base-client/components/iot/DataAnalysisUser'
|
|
14
|
-
import SrcollList from '@vue2-client/base-client/components/common/ScrollList'
|
|
15
|
-
import
|
|
16
|
-
import
|
|
17
|
-
import
|
|
18
|
-
import
|
|
19
|
-
import
|
|
20
|
-
import
|
|
21
|
-
import
|
|
22
|
-
import
|
|
23
|
-
import
|
|
24
|
-
import
|
|
25
|
-
import
|
|
26
|
-
import
|
|
27
|
-
import
|
|
28
|
-
import
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
Vue.component('
|
|
36
|
-
Vue.component('
|
|
37
|
-
Vue.component('
|
|
38
|
-
Vue.component('
|
|
39
|
-
Vue.component('
|
|
40
|
-
Vue.component('
|
|
41
|
-
Vue.component('
|
|
42
|
-
Vue.component('
|
|
43
|
-
Vue.component('
|
|
44
|
-
Vue.component('
|
|
45
|
-
Vue.component('
|
|
46
|
-
Vue.component('
|
|
47
|
-
Vue.component('
|
|
48
|
-
Vue.component('
|
|
49
|
-
Vue.component('
|
|
50
|
-
Vue.component('
|
|
51
|
-
Vue.component('
|
|
52
|
-
Vue.component('
|
|
53
|
-
Vue.component('
|
|
54
|
-
Vue.component('
|
|
55
|
-
Vue.component('
|
|
56
|
-
Vue.component('
|
|
57
|
-
Vue.component('
|
|
58
|
-
Vue.component('
|
|
59
|
-
Vue.component('
|
|
1
|
+
import Vue from 'vue'
|
|
2
|
+
|
|
3
|
+
import CustomColumnsDrawer from '@vue2-client/base-client/components/common/CustomColumnsDrawer'
|
|
4
|
+
import InstructDetailsView from '@vue2-client/base-client/components/iot/InstructDetailsView'
|
|
5
|
+
import MeterDetailsView from '@vue2-client/base-client/components/iot/MeterDetailsView'
|
|
6
|
+
import CustomerDetailsView from '@vue2-client/base-client/components/iot/CustomerDetailsView'
|
|
7
|
+
import LogDetailsView from '@vue2-client/base-client/components/iot/LogDetailsView'
|
|
8
|
+
import WebmeterAnalysisView from '@vue2-client/base-client/components/iot/WebmeterAnalysisView'
|
|
9
|
+
import XCard from '@vue2-client/base-client/components/common/XCard/XCard'
|
|
10
|
+
import XFormCol from '@vue2-client/base-client/components/common/XFormCol'
|
|
11
|
+
import XBadge from '@vue2-client/base-client/components/common/XBadge'
|
|
12
|
+
import DataAnalysisView from '@vue2-client/base-client/components/iot/DataAnalysisView'
|
|
13
|
+
import DataAnalysisUser from '@vue2-client/base-client/components/iot/DataAnalysisUser'
|
|
14
|
+
import SrcollList from '@vue2-client/base-client/components/common/ScrollList'
|
|
15
|
+
import AmapPointRendering from '@vue2-client/base-client/components/common/AmapMarker'
|
|
16
|
+
import DeviceTypeDetailsView from '@vue2-client/base-client/components/iot/DeviceTypeDetailsView'
|
|
17
|
+
import DeviceBrandDetailsView from '@vue2-client/base-client/components/iot/DeviceBrandDetailsView'
|
|
18
|
+
import DictionaryDetailsView from '@vue2-client/base-client/components/system/DictionaryDetailsView'
|
|
19
|
+
import QueryParamsDetailsView from '@vue2-client/base-client/components/system/QueryParamsDetailsView'
|
|
20
|
+
import DeviceDetailsView from '@vue2-client/base-client/components/iot/DeviceDetailsView'
|
|
21
|
+
import TicketDetailsView from '@vue2-client/base-client/components/ticket/TicketDetailsView'
|
|
22
|
+
import EmployeeDetailsView from '@vue2-client/base-client/components/ticket/EmployeeDetailsView'
|
|
23
|
+
import submitTicketSuccess from '@vue2-client/base-client/components/ticket/TicketSubmitSuccessView'
|
|
24
|
+
import CreateQuery from '@vue2-client/base-client/components/common/CreateQuery'
|
|
25
|
+
import CreateSimpleFormQuery from '@vue2-client/base-client/components/common/CreateSimpleFormQuery'
|
|
26
|
+
import FormGroupQuery from '@vue2-client/base-client/components/common/FormGroupQuery'
|
|
27
|
+
import FormGroupEdit from '@vue2-client/base-client/components/common/FormGroupEdit'
|
|
28
|
+
import JSONToTree from '@vue2-client/base-client/components/common/JSONToTree'
|
|
29
|
+
import Upload from '@vue2-client/base-client/components/common/Upload'
|
|
30
|
+
|
|
31
|
+
// 插件
|
|
32
|
+
import Plugins from '@vue2-client/base-client/plugins'
|
|
33
|
+
Vue.use(Plugins)
|
|
34
|
+
|
|
35
|
+
Vue.component('custom-columns-drawer', CustomColumnsDrawer)
|
|
36
|
+
Vue.component('InstructDetailsView', InstructDetailsView)
|
|
37
|
+
Vue.component('MeterDetailsView', MeterDetailsView)
|
|
38
|
+
Vue.component('CustomerDetailsView', CustomerDetailsView)
|
|
39
|
+
Vue.component('LogDetailsView', LogDetailsView)
|
|
40
|
+
Vue.component('WebmeterAnalysisView', WebmeterAnalysisView)
|
|
41
|
+
Vue.component('XCard', XCard)
|
|
42
|
+
Vue.component('XBadge', XBadge)
|
|
43
|
+
Vue.component('XFormCol', XFormCol)
|
|
44
|
+
Vue.component('DataAnalysisView', DataAnalysisView)
|
|
45
|
+
Vue.component('DataAnalysisUser', DataAnalysisUser)
|
|
46
|
+
Vue.component('SrcollList', SrcollList)
|
|
47
|
+
Vue.component('DeviceTypeDetailsView', DeviceTypeDetailsView)
|
|
48
|
+
Vue.component('DeviceBrandDetailsView', DeviceBrandDetailsView)
|
|
49
|
+
Vue.component('DeviceDetailsView', DeviceDetailsView)
|
|
50
|
+
Vue.component('DictionaryDetailsView', DictionaryDetailsView)
|
|
51
|
+
Vue.component('QueryParamsDetailsView', QueryParamsDetailsView)
|
|
52
|
+
Vue.component('TicketDetailsView', TicketDetailsView)
|
|
53
|
+
Vue.component('EmployeeDetailsView', EmployeeDetailsView)
|
|
54
|
+
Vue.component('submitTicketSuccess', submitTicketSuccess)
|
|
55
|
+
Vue.component('CreateQuery', CreateQuery)
|
|
56
|
+
Vue.component('CreateSimpleFormQuery', CreateSimpleFormQuery)
|
|
57
|
+
Vue.component('FormGroupQuery', FormGroupQuery)
|
|
58
|
+
Vue.component('FormGroupEdit', FormGroupEdit)
|
|
59
|
+
Vue.component('JSONToTree', JSONToTree)
|
|
60
|
+
Vue.component('Upload', Upload)
|
|
61
|
+
Vue.component('AmapPointRendering', AmapPointRendering)
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
<template >
|
|
2
|
+
<div id="amap_point_rendering_map" :style="mapStyle">
|
|
3
|
+
<div v-show="false">
|
|
4
|
+
<div id="amap_point_rendering_template">
|
|
5
|
+
<a-descriptions :column="1">
|
|
6
|
+
<a-descriptions-item v-for="(des, index) in describeList" :key="index" :label="des.describe" >{{ markers[des.field] }}</a-descriptions-item>
|
|
7
|
+
</a-descriptions>
|
|
8
|
+
</div>
|
|
9
|
+
</div>
|
|
10
|
+
</div>
|
|
11
|
+
</template>
|
|
12
|
+
<script>
|
|
13
|
+
export default {
|
|
14
|
+
name: 'AmapPointRendering',
|
|
15
|
+
props: {
|
|
16
|
+
// 选中点位后需要展示的信息描述
|
|
17
|
+
describeList: {
|
|
18
|
+
type: Array,
|
|
19
|
+
// eslint-disable-next-line vue/require-valid-default-prop
|
|
20
|
+
default: () => { return [ ] } // lng:描述信息 lat:描述信息对应的值的字段名 { describe: '用户名称', field: 'name' }
|
|
21
|
+
},
|
|
22
|
+
// 需要渲染的点位数据
|
|
23
|
+
markers: {
|
|
24
|
+
type: Object,
|
|
25
|
+
default: null // lng:精度值 lat:纬度值
|
|
26
|
+
},
|
|
27
|
+
// 渲染点位的图片
|
|
28
|
+
imgurl: {
|
|
29
|
+
type: String,
|
|
30
|
+
default: '/image/success1.png'
|
|
31
|
+
},
|
|
32
|
+
mapStyle: {
|
|
33
|
+
type: Object,
|
|
34
|
+
default: () => {
|
|
35
|
+
return {
|
|
36
|
+
width: '100%',
|
|
37
|
+
height: '85vh',
|
|
38
|
+
border: '2px solid lightgray',
|
|
39
|
+
'border-radius': '5px'
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
},
|
|
44
|
+
data () {
|
|
45
|
+
return {
|
|
46
|
+
map: null,
|
|
47
|
+
geocoder: null, // 逆地理编码
|
|
48
|
+
infoWindow: null,
|
|
49
|
+
selectrow: {}
|
|
50
|
+
}
|
|
51
|
+
},
|
|
52
|
+
created () {
|
|
53
|
+
},
|
|
54
|
+
mounted () {
|
|
55
|
+
this.initMap()
|
|
56
|
+
this.initData()
|
|
57
|
+
},
|
|
58
|
+
methods: {
|
|
59
|
+
initData () {
|
|
60
|
+
// 创建一个 Marker 实例:
|
|
61
|
+
if (this.markers && this.markers.lng && this.markers.lat) {
|
|
62
|
+
const that = this
|
|
63
|
+
const marker = new this.$AMap.Marker({
|
|
64
|
+
position: new this.$AMap.LngLat(this.markers.lng, this.markers.lat), // 经纬度对象,也可以是经纬度构成的一维数组[116.39, 39.9]
|
|
65
|
+
title: '北京',
|
|
66
|
+
icon: new this.$AMap.Icon({
|
|
67
|
+
size: new this.$AMap.Size(26, 28), // 图标大小
|
|
68
|
+
url: this.imgurl, // 报警图标URL
|
|
69
|
+
anchor: new this.$AMap.Pixel(0, 0), // 图标偏移位置
|
|
70
|
+
}),
|
|
71
|
+
extData: this.markers
|
|
72
|
+
})
|
|
73
|
+
marker.on('click', function (e) {
|
|
74
|
+
that.infoWindow.setContent(document.getElementById('amap_point_rendering_template'))
|
|
75
|
+
that.infoWindow.open(that.map, [e.target.getExtData().lng, e.target.getExtData().lat])
|
|
76
|
+
})
|
|
77
|
+
// 将创建的点标记添加到已有的地图实例:
|
|
78
|
+
this.map.add(marker)
|
|
79
|
+
this.map.setFitView()
|
|
80
|
+
}
|
|
81
|
+
},
|
|
82
|
+
initMap () {
|
|
83
|
+
this.map = new this.$AMap.Map('amap_point_rendering_map', { // 设置地图容器id
|
|
84
|
+
resizeEnable: true, // 是否监控地图容器尺寸变化
|
|
85
|
+
zoom: 17, // 初始化地图层级
|
|
86
|
+
center: [108.943784, 34.265] // 初始化地图中心点
|
|
87
|
+
})
|
|
88
|
+
this.geocoder = new this.$AMap.Geocoder({
|
|
89
|
+
radius: 500 // 范围,默认:500
|
|
90
|
+
})
|
|
91
|
+
this.map.addControl(new this.$AMap.ToolBar()) // 初始化工具插件
|
|
92
|
+
// 初始化窗体
|
|
93
|
+
this.infoWindow = new this.$AMap.InfoWindow({
|
|
94
|
+
anchor: 'bottom-center',
|
|
95
|
+
isCustom: false, // 使用自定义窗体
|
|
96
|
+
autoMove: true,
|
|
97
|
+
content: '',
|
|
98
|
+
showShadow: true,
|
|
99
|
+
offset: new this.$AMap.Pixel(0, -25)
|
|
100
|
+
})
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
</script>
|
|
@@ -211,9 +211,8 @@
|
|
|
211
211
|
<a-input v-model="item.title" placeholder="请输入数据字段中文名,如:编号"/>
|
|
212
212
|
</a-form-model-item>
|
|
213
213
|
</a-col>
|
|
214
|
-
<a-col :span="8">
|
|
214
|
+
<a-col :span="8" v-if="!(item.formType === 'file' || item.formType === 'image')">
|
|
215
215
|
<a-form-model-item
|
|
216
|
-
v-if="!(item.formType === 'file' || item.formType === 'image')"
|
|
217
216
|
label="数据字段名"
|
|
218
217
|
prop="key">
|
|
219
218
|
<a-input v-model="item.key" placeholder="请输入数据字段名" ref="key">
|
|
@@ -237,13 +236,28 @@
|
|
|
237
236
|
</a-col>
|
|
238
237
|
</a-row>
|
|
239
238
|
<template v-if="dataMode.queryForm || dataMode.addOrEditForm">
|
|
240
|
-
<a-row :gutter="24"
|
|
241
|
-
<a-col :span="8">
|
|
239
|
+
<a-row :gutter="24">
|
|
240
|
+
<a-col :span="8" v-if="item.formType !== 'checkbox' && item.formType !== 'radio' && item.formType !== 'file' && item.formType !== 'image'">
|
|
241
|
+
<a-form-model-item
|
|
242
|
+
label="表单水印"
|
|
243
|
+
prop="placeholder">
|
|
244
|
+
<a-input v-model="item.placeholder" placeholder="表单水印(placeholder),可选" />
|
|
245
|
+
</a-form-model-item>
|
|
246
|
+
</a-col>
|
|
247
|
+
<a-col :span="8" v-if="dataMode.queryForm && dataMode.sqlQueryCondition">
|
|
248
|
+
<a-form-model-item label="表单查询方式" prop="queryType">
|
|
249
|
+
<a-select v-model="item.queryType" placeholder="表单查询方式,可选">
|
|
250
|
+
<template v-for="queryTypeItem in queryTypeV">
|
|
251
|
+
<a-select-option :key="queryTypeItem.key">{{ queryTypeItem.label }}</a-select-option>
|
|
252
|
+
</template>
|
|
253
|
+
</a-select>
|
|
254
|
+
</a-form-model-item>
|
|
255
|
+
</a-col>
|
|
256
|
+
<a-col :span="8" v-if="item.formType === 'file' || item.formType === 'image'">
|
|
242
257
|
<a-form-model-item
|
|
243
258
|
style="margin-bottom: 0"
|
|
244
259
|
label="允许上传文件数量"
|
|
245
|
-
prop="accept"
|
|
246
|
-
v-if="item.formType === 'file' || item.formType === 'image'">
|
|
260
|
+
prop="accept">
|
|
247
261
|
<a-slider
|
|
248
262
|
v-model="item.acceptCount"
|
|
249
263
|
:min="1"
|
|
@@ -253,31 +267,26 @@
|
|
|
253
267
|
/>
|
|
254
268
|
</a-form-model-item>
|
|
255
269
|
</a-col>
|
|
256
|
-
<a-col :span="8">
|
|
270
|
+
<a-col :span="8" v-if="item.formType === 'file' || item.formType === 'image'">
|
|
257
271
|
<a-form-model-item
|
|
258
272
|
label="上传至仓库"
|
|
259
|
-
prop="resUploadStock"
|
|
260
|
-
v-if="item.formType === 'file' || item.formType === 'image'">
|
|
273
|
+
prop="resUploadStock">
|
|
261
274
|
<a-select v-model="item.resUploadStock" placeholder="选择文件上传到的仓库" @change="changeStock">
|
|
262
275
|
<a-select-option v-for="stock in stockList" :key="stock.id">{{ stock.f_name }}</a-select-option>
|
|
263
276
|
</a-select>
|
|
264
277
|
</a-form-model-item>
|
|
265
278
|
</a-col>
|
|
266
|
-
<a-col :span="8">
|
|
279
|
+
<a-col :span="8" v-if="(item.formType === 'file' || item.formType === 'image') && (lowerPath.length > 0 || item.pathKey)">
|
|
267
280
|
<a-form-model-item
|
|
268
281
|
label="仓库扩展路径"
|
|
269
|
-
prop="pathKey"
|
|
270
|
-
v-if="(item.formType === 'file' || item.formType === 'image') && (lowerPath.length > 0 || item.pathKey)">
|
|
282
|
+
prop="pathKey">
|
|
271
283
|
<a-select v-model="item.pathKey" placeholder="仓库扩展路径">
|
|
272
284
|
<a-select-option v-for="pathKey in lowerPath" :key="pathKey.label">{{ pathKey.label }}</a-select-option>
|
|
273
285
|
</a-select>
|
|
274
286
|
</a-form-model-item>
|
|
275
287
|
</a-col>
|
|
276
|
-
<a-col :span="8">
|
|
277
|
-
<a-form-model-item
|
|
278
|
-
label="允许上传文件类型"
|
|
279
|
-
prop="accept"
|
|
280
|
-
v-if="item.formType === 'file'">
|
|
288
|
+
<a-col :span="8" v-if="item.formType === 'file'">
|
|
289
|
+
<a-form-model-item label="允许上传文件类型" prop="accept" >
|
|
281
290
|
<a-select
|
|
282
291
|
mode="tags"
|
|
283
292
|
v-model="item.accept"
|
|
@@ -338,11 +347,10 @@
|
|
|
338
347
|
</a-col>
|
|
339
348
|
</a-row>
|
|
340
349
|
<a-row :gutter="16">
|
|
341
|
-
<a-col :span="8">
|
|
350
|
+
<a-col :span="8" v-if="item.formType === 'select' || (item.formType === 'selects' && item.groupIndex == 1) || item.formType === 'cascader'">
|
|
342
351
|
<a-form-model-item
|
|
343
352
|
label="数据源类型"
|
|
344
|
-
prop="selectType"
|
|
345
|
-
v-if="item.formType === 'select' || (item.formType === 'selects' && item.groupIndex == 1) || item.formType === 'cascader'">
|
|
353
|
+
prop="selectType">
|
|
346
354
|
<a-select v-model="item.selectType" placeholder="请选择数据源类型" @change="changeSelectKey(item)">
|
|
347
355
|
<a-select-option key="key">字典键</a-select-option>
|
|
348
356
|
<a-select-option key="fixArray">固定集合</a-select-option>
|
|
@@ -370,11 +378,10 @@
|
|
|
370
378
|
</a-select>
|
|
371
379
|
</a-form-model-item>
|
|
372
380
|
</a-col>
|
|
373
|
-
<a-col :span="8">
|
|
381
|
+
<a-col :span="8" v-if="(item.formType === 'select' || (item.formType === 'selects' && item.groupIndex == 1) || item.formType === 'cascader') && item.selectType">
|
|
374
382
|
<a-form-model-item
|
|
375
383
|
label="数据源"
|
|
376
|
-
prop="selectKey"
|
|
377
|
-
v-if="(item.formType === 'select' || (item.formType === 'selects' && item.groupIndex == 1) || item.formType === 'cascader') && item.selectType">
|
|
384
|
+
prop="selectKey">
|
|
378
385
|
<a-select
|
|
379
386
|
show-search
|
|
380
387
|
v-model="item.selectKey"
|
|
@@ -395,8 +402,8 @@
|
|
|
395
402
|
<a-textarea v-model="item.selectKey" v-if="item.selectType === 'fixArray'" placeholder="请录入数据源"/>
|
|
396
403
|
</a-form-model-item>
|
|
397
404
|
</a-col>
|
|
398
|
-
<a-col :span="8">
|
|
399
|
-
<a-form-model-item label="数据外键字段名" prop="selectKeyName"
|
|
405
|
+
<a-col :span="8" v-if="item.formType === 'select'">
|
|
406
|
+
<a-form-model-item label="数据外键字段名" prop="selectKeyName">
|
|
400
407
|
<a-input v-model="item.selectKeyName" placeholder="该列所在表在主表的外键名,可选">
|
|
401
408
|
<a-popover slot="suffix" title="关于数据外键字段名" placement="bottom">
|
|
402
409
|
<template slot="content">
|
|
@@ -488,9 +495,8 @@
|
|
|
488
495
|
</a-select>
|
|
489
496
|
</a-form-model-item>
|
|
490
497
|
</a-col>
|
|
491
|
-
<a-col :span="8">
|
|
498
|
+
<a-col :span="8" v-if="item.addOrEdit === 'silenceAdd'">
|
|
492
499
|
<a-form-model-item
|
|
493
|
-
v-if="item.addOrEdit === 'silenceAdd'"
|
|
494
500
|
ref="silencePurpose"
|
|
495
501
|
label="字段用途"
|
|
496
502
|
prop="silencePurpose">
|
|
@@ -514,8 +520,8 @@
|
|
|
514
520
|
</a-select>
|
|
515
521
|
</a-form-model-item>
|
|
516
522
|
</a-col>
|
|
517
|
-
<a-col :span="8">
|
|
518
|
-
<a-form-model-item
|
|
523
|
+
<a-col :span="8" v-if="item.silencePurpose === 'customize'" label="业务逻辑" prop="silenceSource">
|
|
524
|
+
<a-form-model-item>
|
|
519
525
|
<a-input v-model="item.silenceSource" placeholder="请输入业务逻辑名称"/>
|
|
520
526
|
</a-form-model-item>
|
|
521
527
|
</a-col>
|
|
@@ -559,8 +565,8 @@
|
|
|
559
565
|
</a-popover>
|
|
560
566
|
</a-form-model-item>
|
|
561
567
|
</a-col>
|
|
562
|
-
<a-col :span="8">
|
|
563
|
-
<a-form-model-item label="字段默认值" prop="default"
|
|
568
|
+
<a-col :span="8" v-if="dataMode.sqlQueryItem">
|
|
569
|
+
<a-form-model-item label="字段默认值" prop="default">
|
|
564
570
|
<a-input v-model="item.default" placeholder="当查询结果为null时,指定默认值,可选"/>
|
|
565
571
|
</a-form-model-item>
|
|
566
572
|
</a-col>
|
|
@@ -1298,6 +1304,7 @@ export default {
|
|
|
1298
1304
|
}
|
|
1299
1305
|
},
|
|
1300
1306
|
changeFormType (item) {
|
|
1307
|
+
this.item.queryType = null
|
|
1301
1308
|
if (item.formType === 'file' || item.formType === 'image') {
|
|
1302
1309
|
this.item.accept = item.formType === 'file' ? ['*'] : ['.jpg,.jpeg,.ico,.gif,svg,.webp,.png,.bmp,.pjpeg,']
|
|
1303
1310
|
this.item.resUploadMode = 'server'
|