vue2-client 1.8.117 → 1.8.120

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,94 +1,94 @@
1
- {
2
- "name": "vue2-client",
3
- "version": "1.8.117",
4
- "private": false,
5
- "scripts": {
6
- "serve": "SET NODE_OPTIONS=--openssl-legacy-provider && vue-cli-service serve --no-eslint",
7
- "mac-serve": "vue-cli-service serve --no-eslint --mode mac",
8
- "build": "SET NODE_OPTIONS=--openssl-legacy-provider && vue-cli-service build",
9
- "test:unit": "vue-cli-service test:unit",
10
- "lint": "vue-cli-service lint",
11
- "build:preview": "vue-cli-service build --mode preview",
12
- "lint:nofix": "vue-cli-service lint --no-fix",
13
- "test": "jest"
14
- },
15
- "dependencies": {
16
- "@amap/amap-jsapi-loader": "^1.0.1",
17
- "@antv/data-set": "^0.11.8",
18
- "@antv/g2plot": "^2.4.31",
19
- "@vue/babel-preset-jsx": "^1.4.0",
20
- "amis": "^3.4.3",
21
- "animate.css": "^4.1.1",
22
- "ant-design-vue": "^1.7.8",
23
- "axios": "^0.27.2",
24
- "clipboard": "^2.0.11",
25
- "core-js": "^3.33.0",
26
- "crypto-js": "^4.1.1",
27
- "date-fns": "^2.29.3",
28
- "default-passive-events": "^2.0.0",
29
- "dotenv": "^16.3.1",
30
- "echarts": "^5.5.0",
31
- "enquire.js": "^2.1.6",
32
- "file-saver": "^2.0.5",
33
- "highlight.js": "^11.7.0",
34
- "js-base64": "^3.7.5",
35
- "js-cookie": "^2.2.1",
36
- "jsencrypt": "^3.3.2",
37
- "lodash.clonedeep": "^4.5.0",
38
- "lodash.get": "^4.4.2",
39
- "mockjs": "^1.1.0",
40
- "nprogress": "^0.2.0",
41
- "qs": "^6.11.2",
42
- "regenerator-runtime": "^0.14.0",
43
- "videojs-contrib-hls": "^5.15.0",
44
- "viser-vue": "^2.4.8",
45
- "vue": "^2.7.14",
46
- "vue-codemirror": "4.0.6",
47
- "vue-i18n": "^8.28.2",
48
- "vue-json-viewer": "^2.2.22",
49
- "vue-router": "^3.6.5",
50
- "vue-video-player": "^5.0.2",
51
- "vuedraggable": "^2.24.3",
52
- "vuex": "^3.6.2",
53
- "xlsx": "0.18.5"
54
- },
55
- "devDependencies": {
56
- "@ant-design/colors": "^7.0.0",
57
- "@babel/core": "^7.22.20",
58
- "@babel/eslint-parser": "^7.22.15",
59
- "@babel/preset-env": "^7.22.20",
60
- "@vue/cli-plugin-babel": "^5.0.8",
61
- "@vue/cli-plugin-eslint": "^5.0.8",
62
- "@vue/cli-service": "^5.0.8",
63
- "@vue/eslint-config-standard": "^8.0.1",
64
- "@vue/test-utils": "^1.3.6",
65
- "babel-jest": "^26.6.3",
66
- "babel-plugin-transform-remove-console": "^6.9.4",
67
- "compression-webpack-plugin": "^10.0.0",
68
- "copy-webpack-plugin": "^11.0.0",
69
- "css-minimizer-webpack-plugin": "^5.0.1",
70
- "deepmerge": "^4.3.1",
71
- "eslint": "^8.51.0",
72
- "eslint-plugin-vue": "^9.17.0",
73
- "fast-deep-equal": "^3.1.3",
74
- "ignore-loader": "^0.1.2",
75
- "jest": "^26.6.3",
76
- "jest-environment-jsdom": "^26.6.2",
77
- "jest-transform-stub": "^2.0.0",
78
- "less-loader": "^6.2.0",
79
- "script-loader": "^0.7.2",
80
- "style-resources-loader": "^1.5.0",
81
- "vue-cli-plugin-style-resources-loader": "^0.1.5",
82
- "vue-jest": "^4.0.1",
83
- "vue-template-compiler": "^2.7.14",
84
- "webpack": "^5.88.2",
85
- "webpack-theme-color-replacer": "^1.4.7",
86
- "whatwg-fetch": "^3.6.19"
87
- },
88
- "browserslist": [
89
- "> 1%",
90
- "last 2 versions",
91
- "not dead",
92
- "not ie 11"
93
- ]
94
- }
1
+ {
2
+ "name": "vue2-client",
3
+ "version": "1.8.120",
4
+ "private": false,
5
+ "scripts": {
6
+ "serve": "SET NODE_OPTIONS=--openssl-legacy-provider && vue-cli-service serve --no-eslint",
7
+ "mac-serve": "vue-cli-service serve --no-eslint --mode mac",
8
+ "build": "SET NODE_OPTIONS=--openssl-legacy-provider && vue-cli-service build",
9
+ "test:unit": "vue-cli-service test:unit",
10
+ "lint": "vue-cli-service lint",
11
+ "build:preview": "vue-cli-service build --mode preview",
12
+ "lint:nofix": "vue-cli-service lint --no-fix",
13
+ "test": "jest"
14
+ },
15
+ "dependencies": {
16
+ "@amap/amap-jsapi-loader": "^1.0.1",
17
+ "@antv/data-set": "^0.11.8",
18
+ "@antv/g2plot": "^2.4.31",
19
+ "@vue/babel-preset-jsx": "^1.4.0",
20
+ "amis": "^3.4.3",
21
+ "animate.css": "^4.1.1",
22
+ "ant-design-vue": "^1.7.8",
23
+ "axios": "^0.27.2",
24
+ "clipboard": "^2.0.11",
25
+ "core-js": "^3.33.0",
26
+ "crypto-js": "^4.1.1",
27
+ "date-fns": "^2.29.3",
28
+ "default-passive-events": "^2.0.0",
29
+ "dotenv": "^16.3.1",
30
+ "echarts": "^5.5.0",
31
+ "enquire.js": "^2.1.6",
32
+ "file-saver": "^2.0.5",
33
+ "highlight.js": "^11.7.0",
34
+ "js-base64": "^3.7.5",
35
+ "js-cookie": "^2.2.1",
36
+ "jsencrypt": "^3.3.2",
37
+ "lodash.clonedeep": "^4.5.0",
38
+ "lodash.get": "^4.4.2",
39
+ "mockjs": "^1.1.0",
40
+ "nprogress": "^0.2.0",
41
+ "qs": "^6.11.2",
42
+ "regenerator-runtime": "^0.14.0",
43
+ "videojs-contrib-hls": "^5.15.0",
44
+ "viser-vue": "^2.4.8",
45
+ "vue": "^2.7.14",
46
+ "vue-codemirror": "4.0.6",
47
+ "vue-i18n": "^8.28.2",
48
+ "vue-json-viewer": "^2.2.22",
49
+ "vue-router": "^3.6.5",
50
+ "vue-video-player": "^5.0.2",
51
+ "vuedraggable": "^2.24.3",
52
+ "vuex": "^3.6.2",
53
+ "xlsx": "0.18.5"
54
+ },
55
+ "devDependencies": {
56
+ "@ant-design/colors": "^7.0.0",
57
+ "@babel/core": "^7.22.20",
58
+ "@babel/eslint-parser": "^7.22.15",
59
+ "@babel/preset-env": "^7.22.20",
60
+ "@vue/cli-plugin-babel": "^5.0.8",
61
+ "@vue/cli-plugin-eslint": "^5.0.8",
62
+ "@vue/cli-service": "^5.0.8",
63
+ "@vue/eslint-config-standard": "^8.0.1",
64
+ "@vue/test-utils": "^1.3.6",
65
+ "babel-jest": "^26.6.3",
66
+ "babel-plugin-transform-remove-console": "^6.9.4",
67
+ "compression-webpack-plugin": "^10.0.0",
68
+ "copy-webpack-plugin": "^11.0.0",
69
+ "css-minimizer-webpack-plugin": "^5.0.1",
70
+ "deepmerge": "^4.3.1",
71
+ "eslint": "^8.51.0",
72
+ "eslint-plugin-vue": "^9.17.0",
73
+ "fast-deep-equal": "^3.1.3",
74
+ "ignore-loader": "^0.1.2",
75
+ "jest": "^26.6.3",
76
+ "jest-environment-jsdom": "^26.6.2",
77
+ "jest-transform-stub": "^2.0.0",
78
+ "less-loader": "^6.2.0",
79
+ "script-loader": "^0.7.2",
80
+ "style-resources-loader": "^1.5.0",
81
+ "vue-cli-plugin-style-resources-loader": "^0.1.5",
82
+ "vue-jest": "^4.0.1",
83
+ "vue-template-compiler": "^2.7.14",
84
+ "webpack": "^5.88.2",
85
+ "webpack-theme-color-replacer": "^1.4.7",
86
+ "whatwg-fetch": "^3.6.19"
87
+ },
88
+ "browserslist": [
89
+ "> 1%",
90
+ "last 2 versions",
91
+ "not dead",
92
+ "not ie 11"
93
+ ]
94
+ }
@@ -0,0 +1,128 @@
1
+ <template>
2
+ <div class="reportMain">
3
+ <h2 class="reportTitle" v-html="config.title"></h2>
4
+ <table class="reportTable">
5
+ <tbody>
6
+ <template v-for="(row, rowIndex) in config.columns">
7
+ <template v-if="row[0].type !== 'inputColumns'">
8
+ <tr :key="rowIndex">
9
+ <td v-for="(cell, cellIndex) in row" :key="cellIndex" :colspan="cell.colSpan ? cell.colSpan : undefined" :rowspan="cell.rowSpan ? cell.rowSpan : undefined">
10
+ <template v-if="cell.type === 'column'">
11
+ {{ cell.text }}
12
+ </template>
13
+ <template v-else-if="cell.type === 'value'">
14
+ {{ cell.value }}
15
+ </template>
16
+ <template v-else-if="cell.type === 'input'">
17
+ <a-input v-model="data[cell.dataIndex]" />
18
+ </template>
19
+ <template v-else-if="cell.type === 'inputs'">
20
+ <a-input v-model="data[cell.dataIndex]" />
21
+ </template>
22
+ </td>
23
+ </tr>
24
+ </template>
25
+ <template v-else>
26
+ <tr v-for="(item, definitionIndex) in data[row[0].dataIndex]" :key="row[0].dataIndex + definitionIndex">
27
+ <td v-for="(cell, cellIndex) in row[0].definition" :key="cellIndex" :colspan="cell.colSpan ? cell.colSpan : undefined" :rowspan="cell.rowSpan ? cell.rowSpan : undefined">
28
+ <template v-if="cell.type === 'column'">
29
+ {{ cell.text }}
30
+ </template>
31
+ <template v-else-if="cell.type === 'value'">
32
+ {{ cell.value }}
33
+ </template>
34
+ <template v-else-if="cell.type === 'input'">
35
+ <a-input v-model="data[row[0].dataIndex][definitionIndex][cell.dataIndex]" />
36
+ </template>
37
+ <template v-else-if="cell.type === 'inputs'">
38
+ <a-input v-model="data[row[0].dataIndex][definitionIndex][cell.dataIndex]" />
39
+ </template>
40
+ </td>
41
+ </tr>
42
+ <tr :key="'dataAction' + rowIndex">
43
+ <td :colspan="maxColSpan">
44
+ <a-button-group>
45
+ <a-button @click="addData(data[row[0].dataIndex])"><a-icon type="plus"/></a-button>
46
+ <a-button @click="removeData(data[row[0].dataIndex])"><a-icon type="minus"/></a-button>
47
+ </a-button-group>
48
+ </td>
49
+ </tr>
50
+ </template>
51
+ </template>
52
+ </tbody>
53
+ </table>
54
+ </div>
55
+ </template>
56
+
57
+ <script>
58
+ export default {
59
+ name: 'XReport',
60
+ props: {
61
+ config: {
62
+ type: Object,
63
+ required: true
64
+ }
65
+ },
66
+ data () {
67
+ return {
68
+ data: this.config.data,
69
+ maxColSpan: 12
70
+ }
71
+ },
72
+ methods: {
73
+ removeData (dataItem) {
74
+ if (dataItem.length === 0) {
75
+ this.$message.warn('已经没有更多了')
76
+ return
77
+ }
78
+ dataItem.pop()
79
+ },
80
+ addData (dataItem) {
81
+ dataItem.push({
82
+ no: '',
83
+ sort: '',
84
+ content: '',
85
+ finishTime: ''
86
+ })
87
+ }
88
+ },
89
+ }
90
+ </script>
91
+
92
+ <style lang="less" scoped>
93
+ .reportMain {
94
+ width: 800px;
95
+ text-align: center;
96
+ margin: 0 auto;
97
+ font-size: 16px;
98
+ color: #000;
99
+ background-color: #fff;
100
+ padding: 15px;
101
+ border-radius: 8px;
102
+
103
+ .reportTitle {
104
+ font-weight: bold;
105
+ }
106
+
107
+ .reportTable {
108
+ width: 100%;
109
+ border-collapse: collapse;
110
+ table-layout:fixed;
111
+ word-break:break-all;
112
+ }
113
+
114
+ td {
115
+ border: 1px solid #000;
116
+ padding: 8px;
117
+ }
118
+
119
+ input {
120
+ width: 100%;
121
+ box-sizing: border-box;
122
+ }
123
+
124
+ .innerTable {
125
+ width: 784px;
126
+ }
127
+ }
128
+ </style>
@@ -0,0 +1,3 @@
1
+ import XReport from './XReport'
2
+
3
+ export default XReport
@@ -0,0 +1,38 @@
1
+ # XReport
2
+
3
+ 动态报表控件,根据JSON配置生成一个完整的报表
4
+
5
+
6
+ ## 何时使用
7
+
8
+ 当需要一个动态生成的报表时
9
+
10
+
11
+ 引用方式:
12
+
13
+ ```javascript
14
+ import XReport from '@vue2-client/base-client/components/XReport/XReport'
15
+
16
+ export default {
17
+ components: {
18
+ XReport
19
+ }
20
+ }
21
+ ```
22
+
23
+
24
+
25
+ ## 代码演示
26
+
27
+ ```html
28
+ ```
29
+
30
+ ## API
31
+
32
+ | 参数 | 说明 | 类型 | 默认值 |
33
+ |-----------------|--------------------------|--------|------|
34
+
35
+ ## 例子1
36
+ ----
37
+ ```
38
+ ```
@@ -80,7 +80,7 @@ const GetAppDataService = {
80
80
  }
81
81
  },
82
82
  // 新版获取配置中心字典推荐使用 服务名默认为当前服务
83
- getDictByKey (dictKey, serviceName = process.env.VUE_APP_SYSTEM_NAME, callback) {
83
+ getDictByKey (dictKey, serviceName = process.env.VUE_APP_SYSTEM_NAME, callback) {
84
84
  getConfigByName(dictKey, undefined, result => {
85
85
  callback(result.value)
86
86
  })
@@ -1,67 +1,67 @@
1
- <template>
2
- <a-row class="data-content">
3
- <a-row>
4
- <DynamicTable v-if="pane.key" :title="pane.title" :table-data="pane.content"></DynamicTable>
5
- </a-row>
6
- <a-row>
7
- <ChartSelector :rawData="pane.content" v-if="pane?.content?.length"/>
8
- </a-row>
9
- <EvaluationArea :uuid="pane.key" v-if="pane.key && pane.content" @submitEvaluationLib="submitEvaluationLib"/>
10
- </a-row>
11
- </template>
12
-
13
- <script>
14
- import ChartSelector from './ChartSelector.vue'
15
- import EvaluationArea from './EvaluationArea.vue'
16
- import Ellipsis from '@vue2-client/components/Ellipsis/Ellipsis.vue'
17
- import DynamicTable from './DynamicTable.vue'
18
-
19
- export default {
20
- components: {
21
- DynamicTable,
22
- Ellipsis,
23
- ChartSelector,
24
- EvaluationArea
25
- },
26
- data () {
27
- return {
28
- dataTypeActiveKey: '0',
29
- pane: {}
30
- }
31
- },
32
- mounted () {
33
- this.pane = {}
34
- },
35
- methods: {
36
- submitEvaluationLib (value, uuid) {
37
- this.$emit('submitEvaluationLib', value, uuid)
38
- },
39
- show (obj) {
40
- const { uuid, question, data } = obj
41
- this.pane = { title: question, content: data, key: uuid }
42
- },
43
- }
44
- }
45
- </script>
46
- <style lang="less" scoped>
47
- .tab-title {
48
- font-size: 20px;
49
- font-weight: bold;
50
- color: #333;
51
- }
52
-
53
- .chart-card {
54
- margin-top: 20px;
55
- }
56
-
57
- .data-content {
58
- min-height: 100%;
59
- background-color: #fff;
60
- padding: 20px;
61
- border-radius: 8px;
62
- }
63
-
64
- :deep(.ant-tabs-bar) {
65
- margin-bottom: 0px;
66
- }
67
- </style>
1
+ <template>
2
+ <a-row class="data-content">
3
+ <a-row>
4
+ <DynamicTable v-if="pane.key" :title="pane.title" :table-data="pane.content"></DynamicTable>
5
+ </a-row>
6
+ <a-row>
7
+ <ChartSelector :rawData="pane.content" v-if="pane?.content?.length"/>
8
+ </a-row>
9
+ <EvaluationArea :uuid="pane.key" v-if="pane.key && pane.content" @submitEvaluationLib="submitEvaluationLib"/>
10
+ </a-row>
11
+ </template>
12
+
13
+ <script>
14
+ import ChartSelector from './ChartSelector.vue'
15
+ import EvaluationArea from './EvaluationArea.vue'
16
+ import Ellipsis from '@vue2-client/components/Ellipsis/Ellipsis.vue'
17
+ import DynamicTable from './DynamicTable.vue'
18
+
19
+ export default {
20
+ components: {
21
+ DynamicTable,
22
+ Ellipsis,
23
+ ChartSelector,
24
+ EvaluationArea
25
+ },
26
+ data () {
27
+ return {
28
+ dataTypeActiveKey: '0',
29
+ pane: {}
30
+ }
31
+ },
32
+ mounted () {
33
+ this.pane = {}
34
+ },
35
+ methods: {
36
+ submitEvaluationLib (value, uuid) {
37
+ this.$emit('submitEvaluationLib', value, uuid)
38
+ },
39
+ show (obj) {
40
+ const { uuid, question, data } = obj
41
+ this.pane = { title: question, content: data, key: uuid }
42
+ },
43
+ }
44
+ }
45
+ </script>
46
+ <style lang="less" scoped>
47
+ .tab-title {
48
+ font-size: 20px;
49
+ font-weight: bold;
50
+ color: #333;
51
+ }
52
+
53
+ .chart-card {
54
+ margin-top: 20px;
55
+ }
56
+
57
+ .data-content {
58
+ min-height: 100%;
59
+ background-color: #fff;
60
+ padding: 20px;
61
+ border-radius: 8px;
62
+ }
63
+
64
+ :deep(.ant-tabs-bar) {
65
+ margin-bottom: 0px;
66
+ }
67
+ </style>
@@ -10,6 +10,9 @@
10
10
  :rowKey="record => record.id">
11
11
  <template slot="footer">
12
12
  <a-space>
13
+ <span>
14
+ <strong>{{ `总行数 : ${tableData.length}` }}</strong>
15
+ </span>
13
16
  <span v-for="column in tableColumns" :key="column.key">
14
17
  <strong v-if="column.sum !== undefined">{{ `${column.key} : ${column.sum}` }}</strong>
15
18
  </span>
@@ -1,69 +1,69 @@
1
- <template>
2
- <div class="evaluation-card">
3
- <div v-if="!action">
4
- <p>您对这次搜索结果满意吗?</p>
5
- <a-button-group>
6
- <a-space>
7
- <a-button type="primary" icon="like" @click="submitEvaluation(0)">满意</a-button>
8
- <a-button type="danger" icon="dislike" @click="submitEvaluation(1)">不满意</a-button>
9
- <a-button type="default" icon="frown" @click="submitEvaluation(2)">待改进</a-button>
10
- </a-space>
11
- </a-button-group>
12
- </div>
13
- </div>
14
- </template>
15
-
16
- <script>
17
- import { post } from '@vue2-client/services/api'
18
- import { indexedDB } from '@vue2-client/utils/indexedDB'
19
-
20
- export default {
21
- data () {
22
- return {
23
- action: false
24
- }
25
- },
26
- props: {
27
- uuid: {
28
- type: String,
29
- required: true
30
- }
31
- },
32
- methods: {
33
- submitEvaluation (result) {
34
- const key = 'question-' + this.uuid
35
- let flag = true
36
- indexedDB.get(key, (item) => {
37
- flag = false
38
- // 收藏状态不存储到库里
39
- delete item.isFavorite
40
- const content = Object.assign(item, {
41
- evaluation: result
42
- })
43
- // 保存到数据库中
44
- post('/api/af-system/logic/openapi/updateCommonData', {
45
- type: 'ai-question',
46
- content: this.uuid,
47
- newContent: content
48
- }).then(res => {
49
- this.action = true
50
- this.$message.success('评论成功')
51
- indexedDB.delete(key)
52
- indexedDB.add(key, content)
53
- })
54
- })
55
- // 如果 indexedDB 没有获取到说明是对话库的数据
56
- if (flag) {
57
- this.$emit('submitEvaluationLib', result, this.uuid)
58
- }
59
- }
60
- }
61
- }
62
- </script>
63
- <style lang="less" scoped>
64
- .evaluation-card {
65
- width: 50%;
66
- text-align: center;
67
- margin: 20px auto 0 auto;
68
- }
69
- </style>
1
+ <template>
2
+ <div class="evaluation-card">
3
+ <div v-if="!action">
4
+ <p>您对这次搜索结果满意吗?</p>
5
+ <a-button-group>
6
+ <a-space>
7
+ <a-button type="primary" icon="like" @click="submitEvaluation(0)">满意</a-button>
8
+ <a-button type="danger" icon="dislike" @click="submitEvaluation(1)">不满意</a-button>
9
+ <a-button type="default" icon="frown" @click="submitEvaluation(3)">问题不明确</a-button>
10
+ </a-space>
11
+ </a-button-group>
12
+ </div>
13
+ </div>
14
+ </template>
15
+
16
+ <script>
17
+ import { post } from '@vue2-client/services/api'
18
+ import { indexedDB } from '@vue2-client/utils/indexedDB'
19
+
20
+ export default {
21
+ data () {
22
+ return {
23
+ action: false
24
+ }
25
+ },
26
+ props: {
27
+ uuid: {
28
+ type: String,
29
+ required: true
30
+ }
31
+ },
32
+ methods: {
33
+ submitEvaluation (result) {
34
+ const key = 'question-' + this.uuid
35
+ let flag = true
36
+ indexedDB.get(key, (item) => {
37
+ flag = false
38
+ // 收藏状态不存储到库里
39
+ delete item.isFavorite
40
+ const content = Object.assign(item, {
41
+ evaluation: result
42
+ })
43
+ // 保存到数据库中
44
+ post('/api/af-system/logic/openapi/updateCommonData', {
45
+ type: 'ai-question',
46
+ content: this.uuid,
47
+ newContent: content
48
+ }).then(res => {
49
+ this.action = true
50
+ this.$message.success('评论成功')
51
+ indexedDB.delete(key)
52
+ indexedDB.add(key, content)
53
+ })
54
+ })
55
+ // 如果 indexedDB 没有获取到说明是对话库的数据
56
+ if (flag) {
57
+ this.$emit('submitEvaluationLib', result, this.uuid)
58
+ }
59
+ }
60
+ }
61
+ }
62
+ </script>
63
+ <style lang="less" scoped>
64
+ .evaluation-card {
65
+ width: 50%;
66
+ text-align: center;
67
+ margin: 20px auto 0 auto;
68
+ }
69
+ </style>
@@ -117,6 +117,13 @@
117
117
  </span>
118
118
  </a-list-item-meta>
119
119
  <a-space>
120
+ <a-tooltip title="查看元数据">
121
+ <a-icon
122
+ v-if="renderItem.data"
123
+ type="eye"
124
+ @click.stop="openMetaDataModal(renderItem)"/>
125
+ </a-tooltip>
126
+ <span>&emsp;</span>
120
127
  <a-tooltip :title="renderItem.isFavorite ? '取消收藏' : '收藏'" v-if="renderItem.sql">
121
128
  <a-icon
122
129
  type="star"
@@ -213,9 +220,9 @@ export default {
213
220
  color: '#FF4F53'
214
221
  },
215
222
  2: {
216
- icon: 'frown',
217
- text: '待改进',
218
- color: '#52c41a'
223
+ icon: 'dislike',
224
+ text: '不满意',
225
+ color: '#FF4F53'
219
226
  }
220
227
  }, // 对话库
221
228
  // 元数据窗口
@@ -130,6 +130,7 @@ export default {
130
130
  uuid: uuid,
131
131
  question: value,
132
132
  queryType: queryType,
133
+ evaluation: -1,
133
134
  filterTable: res.filter_table,
134
135
  prompt: res.prompt,
135
136
  relationTable: res.relation_table,
@@ -0,0 +1,87 @@
1
+ <template>
2
+ <div>
3
+ <XReport :config="tableConfig" />
4
+ </div>
5
+ </template>
6
+
7
+ <script>
8
+ import XReport from '@vue2-client/base-client/components/common/XReport'
9
+
10
+ export default {
11
+ name: 'Example',
12
+ components: {
13
+ XReport
14
+ },
15
+ data () {
16
+ return {
17
+ tableConfig: {
18
+ title: '陕西城市燃气产业发展有限公司<br/>操作卡',
19
+ header: [
20
+ {},
21
+ {},
22
+ {}
23
+ ],
24
+ columns: [
25
+ [
26
+ { type: 'column', text: '操作任务', colSpan: 2 },
27
+ { type: 'value', colSpan: 10, value: '立管置换及顶层用户通气点火工艺流程' }
28
+ ],
29
+ [
30
+ { type: 'column', text: '操作单位', colSpan: 2 },
31
+ { type: 'input', colSpan: 4, dataIndex: 'unitName' },
32
+ { type: 'column', text: '操作地点', colSpan: 2 },
33
+ { type: 'input', colSpan: 4, dataIndex: 'addressName' }
34
+ ],
35
+ [
36
+ { type: 'column', text: '开 始', colSpan: 2 },
37
+ { type: 'inputs', colSpan: 4, dataIndex: 'startDateArr', format: '{}月{}日{}时{}分' },
38
+ { type: 'column', text: '完 毕', colSpan: 2 },
39
+ { type: 'inputs', colSpan: 4, dataIndex: 'endDateArr', format: '{}月{}日{}时{}分' }
40
+ ],
41
+ [
42
+ { type: 'column', text: '记号' },
43
+ { type: 'column', text: '顺序' },
44
+ { type: 'column', text: '操 作 内 容', colSpan: 8 },
45
+ { type: 'column', text: '操作完成时间', colSpan: 2 },
46
+ ],
47
+ [
48
+ {
49
+ type: 'inputColumns',
50
+ dataIndex: 'actionArr',
51
+ definition: [
52
+ { type: 'input', dataIndex: 'no' },
53
+ { type: 'input', dataIndex: 'sort' },
54
+ { type: 'input', dataIndex: 'content', colSpan: 8 },
55
+ { type: 'input', dataIndex: 'finishTime', colSpan: 2 },
56
+ ]
57
+ },
58
+ ],
59
+ [
60
+ { type: 'column', text: '备注', colSpan: 2 },
61
+ { type: 'input', colSpan: 10, dataIndex: 'remark' }
62
+ ],
63
+ [
64
+ { type: 'column', text: '操作人', colSpan: 2, rowSpan: 2 },
65
+ { type: 'input', colSpan: 4, rowSpan: 2, dataIndex: 'actionPerson' },
66
+ { type: 'column', text: '监护人', colSpan: 2, rowSpan: 2 },
67
+ { type: 'input', colSpan: 4, rowSpan: 2, dataIndex: 'guardian' }
68
+ ],
69
+ ],
70
+ data: {
71
+ taskName: '',
72
+ unitName: '',
73
+ addressName: '',
74
+ startDateArr: [],
75
+ endDateArr: [],
76
+ actionArr: [],
77
+ remark: '',
78
+ actionPerson: '',
79
+ guardian: ''
80
+ }
81
+ }
82
+ }
83
+ },
84
+ methods: {
85
+ }
86
+ }
87
+ </script>
@@ -1,72 +1,74 @@
1
- const { homePage } = require('../../config')
2
- // 视图组件
3
- const view = {
4
- tabs: () => import('@vue2-client/layouts/tabs'),
5
- blank: () => import('@vue2-client/layouts/BlankView'),
6
- page: () => import('@vue2-client/layouts/PageView')
7
- }
8
- // 动态路由对象定义
9
- const routerResource = {}
10
- // --------------------------------------基本视图组件--------------------------------------
11
- // 空白视图
12
- routerResource.blank = view.blank
13
- // 单页面视图
14
- routerResource.singlePage = view.blank
15
-
16
- // --------------------------------------仪表盘--------------------------------------
17
- routerResource.dashboard = view.blank
18
- // 工作台
19
- routerResource.workplace = () => import('@vue2-client/pages/dashboard/workplace')
20
- // --------------------------------------系统配置--------------------------------------
21
- routerResource.system = view.blank
22
- // 字典管理
23
- routerResource.dictionaryManage = () => import('@vue2-client/pages/system/dictionary')
24
- // 文件管理
25
- routerResource.fileManager = () => import('@vue2-client/pages/system/file')
26
- // 登录日志
27
- routerResource.loginInfor = () => import('@vue2-client/pages/system/monitor/loginInfor')
28
- // 操作日志
29
- routerResource.operLog = () => import('@vue2-client/pages/system/monitor/operLog')
30
- // 系统问题反馈工单
31
- routerResource.submitTicket = () => import('@vue2-client/pages/system/ticket')
32
- // 通用服务评价
33
- routerResource.ServiceReview = () => import('@vue2-client/pages/ServiceReview')
34
- // 系统设置
35
- routerResource.settings = () => import('@vue2-client/pages/system/settings')
36
- // AMIS示例页面
37
- routerResource.amisDemo = () => import('@vue2-client/pages/AMisDemo/AMisDemo')
38
- // 数据检索
39
- routerResource.dynamicStatistics = () => import('@vue2-client/pages/DynamicStatistics')
40
-
41
- // 基础路由组件注册
42
- const routerMap = {
43
- login: {
44
- authority: '*',
45
- path: '/login',
46
- component: () => import('@vue2-client/pages/login')
47
- },
48
- root: {
49
- path: '/',
50
- name: '首页',
51
- redirect: homePage,
52
- component: process.env.VUE_APP_SINGLE_PAPER === 'TRUE' ? view.blank : view.tabs,
53
- },
54
- exp403: {
55
- authority: '*',
56
- name: 'exp403',
57
- path: '403',
58
- component: () => import('@vue2-client/pages/exception/403')
59
- },
60
- exp404: {
61
- name: 'exp404',
62
- path: '404',
63
- component: () => import('@vue2-client/pages/exception/404')
64
- },
65
- exp500: {
66
- name: 'exp500',
67
- path: '500',
68
- component: () => import('@vue2-client/pages/exception/500')
69
- }
70
- }
71
- Object.assign(routerMap, routerResource)
72
- export default routerMap
1
+ const { homePage } = require('../../config')
2
+ // 视图组件
3
+ const view = {
4
+ tabs: () => import('@vue2-client/layouts/tabs'),
5
+ blank: () => import('@vue2-client/layouts/BlankView'),
6
+ page: () => import('@vue2-client/layouts/PageView')
7
+ }
8
+ // 动态路由对象定义
9
+ const routerResource = {}
10
+ // --------------------------------------基本视图组件--------------------------------------
11
+ // 空白视图
12
+ routerResource.blank = view.blank
13
+ // 单页面视图
14
+ routerResource.singlePage = view.blank
15
+
16
+ // --------------------------------------仪表盘--------------------------------------
17
+ routerResource.dashboard = view.blank
18
+ // 工作台
19
+ routerResource.workplace = () => import('@vue2-client/pages/dashboard/workplace')
20
+ // --------------------------------------系统配置--------------------------------------
21
+ routerResource.system = view.blank
22
+ // 字典管理
23
+ routerResource.dictionaryManage = () => import('@vue2-client/pages/system/dictionary')
24
+ // 文件管理
25
+ routerResource.fileManager = () => import('@vue2-client/pages/system/file')
26
+ // 登录日志
27
+ routerResource.loginInfor = () => import('@vue2-client/pages/system/monitor/loginInfor')
28
+ // 操作日志
29
+ routerResource.operLog = () => import('@vue2-client/pages/system/monitor/operLog')
30
+ // 系统问题反馈工单
31
+ routerResource.submitTicket = () => import('@vue2-client/pages/system/ticket')
32
+ // 通用服务评价
33
+ routerResource.ServiceReview = () => import('@vue2-client/pages/ServiceReview')
34
+ // 系统设置
35
+ routerResource.settings = () => import('@vue2-client/pages/system/settings')
36
+ // AMIS示例页面
37
+ routerResource.amisDemo = () => import('@vue2-client/pages/AMisDemo/AMisDemo')
38
+ // 数据检索
39
+ routerResource.dynamicStatistics = () => import('@vue2-client/pages/DynamicStatistics')
40
+ // 示例页面
41
+ routerResource.example = () => import('@vue2-client/pages/Example')
42
+
43
+ // 基础路由组件注册
44
+ const routerMap = {
45
+ login: {
46
+ authority: '*',
47
+ path: '/login',
48
+ component: () => import('@vue2-client/pages/login')
49
+ },
50
+ root: {
51
+ path: '/',
52
+ name: '首页',
53
+ redirect: homePage,
54
+ component: process.env.VUE_APP_SINGLE_PAPER === 'TRUE' ? view.blank : view.tabs,
55
+ },
56
+ exp403: {
57
+ authority: '*',
58
+ name: 'exp403',
59
+ path: '403',
60
+ component: () => import('@vue2-client/pages/exception/403')
61
+ },
62
+ exp404: {
63
+ name: 'exp404',
64
+ path: '404',
65
+ component: () => import('@vue2-client/pages/exception/404')
66
+ },
67
+ exp500: {
68
+ name: 'exp500',
69
+ path: '500',
70
+ component: () => import('@vue2-client/pages/exception/500')
71
+ }
72
+ }
73
+ Object.assign(routerMap, routerResource)
74
+ export default routerMap