openatc-components 0.4.64 → 0.4.66

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/config/index.js CHANGED
@@ -1,94 +1,137 @@
1
- 'use strict'
2
- // Template version: 1.3.1
3
- // see http://vuejs-templates.github.io/webpack for documentation.
4
-
5
- const path = require('path')
6
-
7
- module.exports = {
8
- dev: {
9
-
10
- // Paths
11
- assetsSubDirectory: 'static',
12
- assetsPublicPath: '/',
13
- proxyTable: {
14
- '/': {
15
- // target: 'http://192.168.13.103:8012/openatc',//'http://172.16.239.139:8080/',//设置你调用的接口域名和端口号
16
- // target: 'http://192.168.14.2:8012/openatc',//'http://172.16.239.139:8080/',//设置你调用的接口域名和端口号
17
- // target: 'https://dolphin-test.kedacom.com/openatc',
18
- // target: 'http://192.168.13.105:11003/openatc',
19
- target: 'http://192.168.13.103:10003/openatc',
20
- // target: 'http://10.165.32.135:30555/openatc',
21
- // target: 'http://192.168.15.11:8012/openatc',
22
- // target: 'http://192.168.13.103:10003/openatc',
23
- // target: 'http://192.168.13.103:9999',//'http://172.16.239.139:8080/',//设置你调用的接口域名和端口号
24
- // target: 'http://192.168.13.103:9999/kissapi',//'http://172.16.239.139:8080/',//设置你调用的接口域名和端口号
25
- changeOrigin: true, //跨域
26
- pathRewrite: {
27
- '^/': '/'//这里理解成用‘/api’代替target里面的地址,后面组件中我们掉接口时直接用api代替 比如我要调用'http://10.1.5.11:8080/xxx/duty?time=2017-07-07 14:57:22',直接写‘/api/xxx/duty?time=2017-07-07 14:57:22’即可
28
- }
29
- }
30
- },
31
-
32
- // Various Dev Server settings
33
- host: 'localhost', // can be overwritten by process.env.HOST
34
- port: 8099, // can be overwritten by process.env.PORT, if port is in use, a free one will be determined
35
- autoOpenBrowser: false,
36
- errorOverlay: true,
37
- notifyOnErrors: true,
38
- poll: false, // https://webpack.js.org/configuration/dev-server/#devserver-watchoptions-
39
-
40
- // Use Eslint Loader?
41
- // If true, your code will be linted during bundling and
42
- // linting errors and warnings will be shown in the console.
43
- useEslint: true,
44
- // If true, eslint errors and warnings will also be shown in the error overlay
45
- // in the browser.
46
- showEslintErrorsInOverlay: true,
47
-
48
- /**
49
- * Source Maps
50
- */
51
-
52
- // https://webpack.js.org/configuration/devtool/#development
53
- devtool: 'source-map',
54
-
55
- // If you have problems debugging vue-files in devtools,
56
- // set this to false - it *may* help
57
- // https://vue-loader.vuejs.org/en/options.html#cachebusting
58
- cacheBusting: false,
59
-
60
- cssSourceMap: false
61
- },
62
-
63
- build: {
64
- // Template for index.html
65
- index: path.resolve(__dirname, '../dist/index.html'),
66
-
67
- // Paths
68
- assetsRoot: path.resolve(__dirname, '../dist'),
69
- assetsSubDirectory: './',
70
- assetsPublicPath: './',
71
-
72
- /**
73
- * Source Maps
74
- */
75
-
76
- productionSourceMap: true,
77
- // https://webpack.js.org/configuration/devtool/#production
78
- devtool: 'source-map',
79
- // devtool: 'eval-source-map',
80
-
81
- // Gzip off by default as many popular static hosts such as
82
- // Surge or Netlify already gzip all static assets for you.
83
- // Before setting to `true`, make sure to:
84
- // npm install --save-dev compression-webpack-plugin
85
- productionGzip: false,
86
- productionGzipExtensions: ['js', 'css'],
87
-
88
- // Run the build command with an extra argument to
89
- // View the bundle analyzer report after build finishes:
90
- // `npm run build --report`
91
- // Set to `true` or `false` to always turn it on or off
92
- bundleAnalyzerReport: process.env.npm_config_report
93
- }
94
- }
1
+ /**
2
+ * Copyright (c) 2020 kedacom
3
+ * OpenATC is licensed under Mulan PSL v2.
4
+ * You can use this software according to the terms and conditions of the Mulan PSL v2.
5
+ * You may obtain a copy of Mulan PSL v2 at:
6
+ * http://license.coscl.org.cn/MulanPSL2
7
+ * THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
8
+ * EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
9
+ * MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
10
+ * See the Mulan PSL v2 for more details.
11
+ **/
12
+ 'use strict'
13
+ // Template version: 1.2.6
14
+ // see http://vuejs-templates.github.io/webpack for documentation.
15
+ const fs = require('fs');
16
+ const path = require('path')
17
+ let VUE_APP_PROXY_API_TARGET = "http://127.0.0.1:8080"
18
+ let VUE_APP_PROXY_MAIN_TARGET = "http://127.0.0.1:8080"
19
+ let VUE_APP_PROXY_SOCKET_TARGET = "http://127.0.0.1:8080"
20
+ const localFile = path.resolve(__dirname, 'dev.local.js');
21
+ if (fs.existsSync(localFile)) {
22
+ let local = require(localFile)
23
+ if (local) {
24
+ VUE_APP_PROXY_API_TARGET = local.VUE_APP_PROXY_API_TARGET
25
+ VUE_APP_PROXY_MAIN_TARGET = local.VUE_APP_PROXY_MAIN_TARGET
26
+ VUE_APP_PROXY_SOCKET_TARGET = local.VUE_APP_PROXY_SOCKET_TARGET
27
+ }
28
+ }
29
+ module.exports = {
30
+ dev: {
31
+ // Paths
32
+ assetsSubDirectory: 'static',
33
+ assetsPublicPath: '/',
34
+ proxyTable: {
35
+ '/api': {
36
+ target: VUE_APP_PROXY_API_TARGET,
37
+ changeOrigin: true,
38
+ ws: true,
39
+ secure: false,
40
+ pathRewrite: {
41
+ '^/api': '/api'
42
+ }
43
+ },
44
+ '/socket': {
45
+ target: VUE_APP_PROXY_SOCKET_TARGET,
46
+ changeOrigin: true,
47
+ ws: true,
48
+ secure: false,
49
+ pathRewrite: {
50
+ '^/socket': '/'
51
+ }
52
+ },
53
+ '/': {
54
+ target: VUE_APP_PROXY_MAIN_TARGET,
55
+ changeOrigin: true, //跨域
56
+ pathRewrite: {
57
+ '^/': '/'//这里理解成用‘/api’代替target里面的地址,后面组件中我们掉接口时直接用api代替 比如我要调用'http://10.1.5.11:8080/xxx/duty?time=2017-07-07 14:57:22',直接写‘/api/xxx/duty?time=2017-07-07 14:57:22’即可
58
+ }
59
+ }
60
+ },
61
+
62
+ // Various Dev Server settings
63
+ // host: '0.0.0.0',
64
+ host: 'localhost', // can be overwritten by process.env.HOST
65
+ port: 9528, // can be overwritten by process.env.PORT, if port is in use, a free one will be determined
66
+ autoOpenBrowser: true,
67
+ errorOverlay: true,
68
+ notifyOnErrors: false,
69
+ poll: false, // https://webpack.js.org/configuration/dev-server/#devserver-watchoptions-
70
+
71
+ // Use Eslint Loader?
72
+ // If true, your code will be linted during bundling and
73
+ // linting errors and warnings will be shown in the console.
74
+ useEslint: true,
75
+ // If true, eslint errors and warnings will also be shown in the error overlay
76
+ // in the browser.
77
+ showEslintErrorsInOverlay: true,
78
+
79
+ /**
80
+ * Source Maps
81
+ */
82
+
83
+ // https://webpack.js.org/configuration/devtool/#development
84
+ devtool: 'source-map',
85
+
86
+ // If you have problems debugging vue-files in devtools,
87
+ // set this to false - it *may* help
88
+ // https://vue-loader.vuejs.org/en/options.html#cachebusting
89
+ cacheBusting: false,
90
+
91
+ // CSS Sourcemaps off by default because relative paths are "buggy"
92
+ // with this option, according to the CSS-Loader README
93
+ // (https://github.com/webpack/css-loader#sourcemaps)
94
+ // In our experience, they generally work as expected,
95
+ // just be aware of this issue when enabling this option.
96
+ cssSourceMap: false,
97
+ },
98
+
99
+ build: {
100
+ // Template for index.html
101
+ index: path.resolve(__dirname, '../dist/index.html'),
102
+
103
+ // Paths
104
+ assetsRoot: path.resolve(__dirname, '../dist'),
105
+ assetsSubDirectory: './',
106
+
107
+ /**
108
+ * You can set by youself according to actual condition
109
+ * You will need to set this if you plan to deploy your site under a sub path,
110
+ * for example GitHub pages. If you plan to deploy your site to https://foo.github.io/bar/,
111
+ * then assetsPublicPath should be set to "/bar/".
112
+ * In most cases please use '/' !!!
113
+ */
114
+ assetsPublicPath: './', // If you are deployed on the root path, please use '/'
115
+
116
+ /**
117
+ * Source Maps
118
+ */
119
+
120
+ productionSourceMap: false,
121
+ // https://webpack.js.org/configuration/devtool/#production
122
+ devtool: '#source-map',
123
+
124
+ // Gzip off by default as many popular static hosts such as
125
+ // Surge or Netlify already gzip all static assets for you.
126
+ // Before setting to `true`, make sure to:
127
+ // npm install --save-dev compression-webpack-plugin
128
+ productionGzip: false,
129
+ productionGzipExtensions: ['js', 'css'],
130
+
131
+ // Run the build command with an extra argument to
132
+ // View the bundle analyzer report after build finishes:
133
+ // `npm run build --report`
134
+ // Set to `true` or `false` to always turn it on or off
135
+ bundleAnalyzerReport: process.env.npm_config_report
136
+ }
137
+ }
@@ -0,0 +1,2 @@
1
+ import OptimizeKanban from './OptimizeKanban.vue'
2
+ export default OptimizeKanban
@@ -0,0 +1,369 @@
1
+ /**
2
+ * Copyright (c) 2020 kedacom
3
+ * OpenATC is licensed under Mulan PSL v2.
4
+ * You can use this software according to the terms and conditions of the Mulan PSL v2.
5
+ * You may obtain a copy of Mulan PSL v2 at:
6
+ * http://license.coscl.org.cn/MulanPSL2
7
+ * THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
8
+ * EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
9
+ * MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
10
+ * See the Mulan PSL v2 for more details.
11
+ **/
12
+ <template>
13
+ <div class="kanbanOptimize">
14
+ <div v-if="this.nowNumber === 1" class="optimizetype">
15
+ <span>{{$t('openatccomponents.pattern.optimizetype')}}</span>
16
+ <el-select v-model="value" clearable :placeholder="$t('openatccomponents.common.select')">
17
+ <el-option
18
+ v-for="item in typeOptions"
19
+ :key="item.value"
20
+ :label="$t('openatccomponents.overview.type' + item.value)"
21
+ :value="item.value"
22
+ >
23
+ </el-option>
24
+ </el-select>
25
+ <span class="optimiNum">{{$t('openatccomponents.pattern.optimizecycle')}}</span>
26
+ <el-input v-model="optimizecycle" clearable :placeholder="$t('openatccomponents.common.enter')"></el-input>
27
+ <!-- <el-button type="primary" @click="onOptimizeClick()">{{$t('openatccomponents.pattern.inoptimize')}}</el-button> -->
28
+ </div>
29
+ <div class="common-board-column" :style="{marginTop:this.nowNumber === 1 ? 0 : '50px',marginLeft:this.nowNumber === 1 ? 0 : 0}">
30
+ <div class="common-board-column-header">
31
+ {{headerText}}
32
+ </div>
33
+ <div class="openatccomponents-board-table-header">
34
+ <el-row :gutter="13">
35
+ <el-col :span="4">{{this.$t('openatccomponents.overview.phase')}}
36
+ </el-col>
37
+ <el-col :span="10">{{this.$t('openatccomponents.overview.flow')}}
38
+ </el-col>
39
+ <el-col :span="10">{{this.$t('openatccomponents.overview.saturationflow')}}
40
+ </el-col>
41
+ </el-row>
42
+ </div>
43
+ <draggable
44
+ class="common-board-column-content"
45
+ :list="list"
46
+ :options="options">
47
+ <div class="common-board-item" v-for="element in list" :key="element.id">
48
+ <el-row :gutter="13">
49
+ <el-col :span="4">
50
+ <el-tooltip class="item" effect="dark" placement="left">
51
+ <div slot="content">{{element.name}}</div>
52
+ <div class="common-phase-description">
53
+ <xdrdirselector Width="70px" Height="70px" Widths="58px" Heights="58px" :Datas="styles" :Data="showStyle" :showlist="element.desc" :ISActiveMask="ISActiveMask" :MaskColor="MaskColor"></xdrdirselector>
54
+ </div>
55
+ </el-tooltip>
56
+ </el-col>
57
+ <el-col :span="10">
58
+ <el-input-number :controls="false" class="col-content" size="small" :step="1" v-model.number="element.flowperhour" ref="type" :disabled="element.mode === 7"></el-input-number>
59
+ </el-col>
60
+ <el-col :span="10">
61
+ <el-input-number :controls="false" class="col-content" size="small" :step="1" v-model.number="element.saturation" ref="types" :disabled="element.mode === 7"></el-input-number>
62
+ </el-col>
63
+ </el-row>
64
+ </div>
65
+ </draggable>
66
+ </div>
67
+ </div>
68
+ </template>
69
+ <script>
70
+ import draggable from 'vuedraggable'
71
+ import { getDuration } from '@/api/cross'
72
+ import xdrdirselector from '@/components/XRDDirSelector'
73
+
74
+ export default {
75
+ name: 'patternOptimize',
76
+ components: {
77
+ draggable,
78
+ xdrdirselector
79
+ },
80
+ data () {
81
+ return {
82
+ showStyle: {
83
+ left: '7px',
84
+ top: '0px'
85
+ },
86
+ styles: {
87
+ left: '7px',
88
+ top: '0px'
89
+ },
90
+ typeOptions: [{
91
+ value: 'flow-split-opt'
92
+ }, {
93
+ value: 'cycle-opt'
94
+ }],
95
+ value: 'flow-split-opt',
96
+ optimizecycle: 0
97
+ }
98
+ },
99
+ props: {
100
+ headerText: {
101
+ type: String,
102
+ default: 'Header'
103
+ },
104
+ id: {
105
+ type: Number
106
+ },
107
+ rings: {
108
+ type: Array
109
+ },
110
+ nowNumber: {
111
+ type: Number
112
+ },
113
+ phaseList: {
114
+ type: Array
115
+ },
116
+ options: {
117
+ type: Object,
118
+ default () {
119
+ return {}
120
+ }
121
+ },
122
+ list: {
123
+ type: Array,
124
+ default () {
125
+ return []
126
+ }
127
+ },
128
+ // index: {
129
+ // type: Number
130
+ // },
131
+ ISActiveMask: {
132
+ type: Boolean,
133
+ default: true
134
+ },
135
+ // 当phase的描述为空时,显示的图形颜色。
136
+ MaskColor: {
137
+ type: String,
138
+ default: '#000000'
139
+ }
140
+ },
141
+ created () {
142
+ // this.addMinSplit()
143
+ this.addMin()
144
+ },
145
+ computed () {
146
+
147
+ },
148
+ watch: {
149
+ list: {
150
+ handler: function () {
151
+ // let list = this.$refs.type
152
+ // let flow = this.$refs.types
153
+ // console.log(this.list, 'list')
154
+ // let cycle = 0
155
+ // let n = this.index
156
+ // for (let i = 0; i < list.length; i++) {
157
+ // cycle = cycle + Number(list[i].currentValue)
158
+ // }
159
+ // const globalParamModel = this.$store.getters.globalParamModel
160
+ // // let MaxCycle = globalParamModel.getParamsByType('patternList')[n].cycle
161
+ // let pattern = globalParamModel.getParamsByType('patternList')[n]
162
+ // globalParamModel.getParamsByType('patternList')[n].cycle = this.getMaxCycle(pattern)
163
+ // this.addMinSplit()
164
+ // this.$emit('handleSplit', n)
165
+ },
166
+ deep: true
167
+ }
168
+ },
169
+ methods: {
170
+ onOptimizeClick () {
171
+ let msg = this.$t('openatccomponents.pattern.algorithmEngineOptimization')
172
+ const loading = this.$loading({
173
+ lock: true,
174
+ text: msg,
175
+ spinner: 'el-icon-loading',
176
+ background: 'rgba(0, 0, 0, 0.7)'
177
+ })
178
+ setTimeout(() => {
179
+ loading.close()
180
+ this.handeleOptimizeClick()
181
+ }, 1000)
182
+ },
183
+ handeleOptimizeClick () {
184
+ let newPha = []
185
+ for (let i = 0; i < this.rings.length; i++) {
186
+ newPha.push(...this.rings[i])
187
+ }
188
+ let phaseData = newPha.map(item => {
189
+ return {
190
+ id: item.id,
191
+ flowperhour: item.flowperhour,
192
+ saturation: item.saturation
193
+ }
194
+ })
195
+ let patternList = this.$store.state.globalParam.tscParam.patternList
196
+ let pattern = patternList.filter((item) => item.id === this.id)[0]
197
+ let reqData = {
198
+ 'type': this.value,
199
+ 'optcycle': this.optimizecycle ? this.optimizecycle : 0,
200
+ 'phaseList': this.phaseList,
201
+ 'pattern': pattern,
202
+ 'phases': phaseData
203
+ }
204
+ let isValidata = []
205
+ for (let j = 0; j < newPha.length; j++) {
206
+ let comNum = (newPha[j].length / 4) * 1700 * 0.8
207
+ isValidata.push(newPha[j].flowperhour > comNum)
208
+ }
209
+ if (isValidata.includes(true)) {
210
+ this.$confirm(this.$t('openatccomponents.overview.maxFlow'),
211
+ this.$t('openatccomponents.common.alarm'), {
212
+ confirmButtonText: this.$t('eopenatccomponentsdge.common.confirm'),
213
+ cancelButtonText: this.$t('openatccomponents.common.cancel'),
214
+ type: 'warning'
215
+ }).then(() => {
216
+ getDuration(reqData).then(data => {
217
+ if (data.data.success) {
218
+ this.$message({
219
+ type: 'success',
220
+ message: this.$t('openatccomponents.pattern.success')
221
+ })
222
+ for (let i = 0; i < this.rings.length; i++) {
223
+ for (let j = 0; j < this.rings[i].length; j++) {
224
+ for (let h = 0; h < data.data.data.phase.length; h++) {
225
+ if (this.rings[i][j].id === data.data.data.phase[h].id) {
226
+ this.rings[i][j].value = data.data.data.phase[h].duration
227
+ // this.rings[i][j].cycle = data.data.data.phase[h].cycle
228
+ }
229
+ }
230
+ }
231
+ }
232
+ }
233
+ }).catch(error => {
234
+ console.log(error)
235
+ })
236
+ }).catch(() => {
237
+ })
238
+ } else {
239
+ getDuration(reqData).then(data => {
240
+ if (data.data.success) {
241
+ this.$message({
242
+ type: 'success',
243
+ message: this.$t('openatccomponents.pattern.success')
244
+ })
245
+ for (let i = 0; i < this.rings.length; i++) {
246
+ for (let j = 0; j < this.rings[i].length; j++) {
247
+ for (let h = 0; h < data.data.data.phase.length; h++) {
248
+ if (this.rings[i][j].id === data.data.data.phase[h].id) {
249
+ this.rings[i][j].value = data.data.data.phase[h].duration
250
+ // this.rings[i][j].cycle = data.data.data.phase[h].cycle
251
+ }
252
+ }
253
+ }
254
+ }
255
+ }
256
+ }).catch(error => {
257
+ console.log(error)
258
+ })
259
+ }
260
+ },
261
+ addMin () {
262
+ for (let i of this.list) {
263
+ if (!i.flowperhour || !i.saturation) {
264
+ i.length = this.list.length
265
+ i.flowperhour = 0
266
+ i.saturation = 1700
267
+ }
268
+ }
269
+ }
270
+ // addMinSplit () {
271
+ // const globalParamModel = this.$store.getters.globalParamModel
272
+ // let phaseList = globalParamModel.getParamsByType('phaseList')
273
+ // for (let ls of this.list) {
274
+ // let phase = phaseList.filter((item) => {
275
+ // return item.id === ls.id
276
+ // })[0]
277
+ // if (!phase.redyellow) {
278
+ // phase.redyellow = 0
279
+ // }
280
+ // if (!phase.yellow) {
281
+ // phase.yellow = 0
282
+ // }
283
+ // if (!phase.redclear) {
284
+ // phase.redclear = 0
285
+ // }
286
+ // if (!phase.flashgreen) {
287
+ // phase.flashgreen = 0
288
+ // }
289
+ // if (!phase.phasewalk) {
290
+ // phase.phasewalk = 0
291
+ // }
292
+ // if (!phase.pedclear) {
293
+ // phase.pedclear = 0
294
+ // }
295
+ // // let temp1 = phase.redyellow + phase.yellow + phase.redclear + phase.flashgreen // 绿信比的最小值要大于最小绿+黄灯+全红+绿闪
296
+ // // let temp2 = phase.phasewalk + phase.pedclear
297
+ // // if (temp1 > temp2) {
298
+ // // ls.minSplit = temp1
299
+ // // } else {
300
+ // // ls.minSplit = temp2
301
+ // // }
302
+ // // if (ls.mode !== 7 && ls.value < ls.minSplit) {
303
+ // // ls.value = ls.minSplit
304
+ // // }
305
+ // // let temp1 = phase.yellow + phase.redclear + phase.flashgreen // 绿信比的最小值要大于最小绿+黄灯+全红+绿闪
306
+ // let temp1 = phase.yellow + phase.redclear + phase.mingreen
307
+ // let temp2 = phase.yellow + phase.redclear + phase.phasewalk + phase.pedclear
308
+ // ls.minSplit = temp1 > temp2 ? temp1 : temp2
309
+ // if (ls.mode !== 7 && ls.value < ls.minSplit) {
310
+ // ls.value = ls.minSplit
311
+ // this.$message.error(this.$t('openatccomponents.pattern.splitCheckMsg'))
312
+ // }
313
+ // }
314
+ // },
315
+ // getMaxCycle (pattern) {
316
+ // let rings = pattern.rings
317
+ // let maxCycle = 0
318
+ // for (let ring of rings) {
319
+ // if (ring.length === 0) continue
320
+ // let cycle = 0
321
+ // for (let r of ring) {
322
+ // if (r.mode === 7) { // 忽略相位不计周期
323
+ // continue
324
+ // }
325
+ // cycle = cycle + r.value
326
+ // }
327
+ // if (cycle > maxCycle) {
328
+ // maxCycle = cycle
329
+ // }
330
+ // }
331
+ // return maxCycle
332
+ // },
333
+ // doChange (val) {
334
+ // // if (val.mode === 7) {
335
+ // // val.value = 0
336
+ // // } else {
337
+ // // val.value = 30
338
+ // // }
339
+ // }
340
+ }
341
+ }
342
+ </script>
343
+ <style lang="scss" scoped>
344
+ .col-content {
345
+ width: 100%;
346
+ }
347
+ .kanbanOptimize {
348
+ .common-board-column {
349
+ max-width: unset !important;
350
+ }
351
+ }
352
+ .optimizetype{
353
+ // float: left;
354
+ font-size: 14PX;
355
+ margin:0 0 10PX 0;
356
+ .el-input {
357
+ width: 80PX;
358
+ }
359
+ .el-select{
360
+ width: 145PX;
361
+ }
362
+ .el-button {
363
+ margin-left: 10PX;
364
+ }
365
+ .optimiNum {
366
+ padding-left: 10PX;
367
+ }
368
+ }
369
+ </style>
@@ -432,6 +432,13 @@ export default {
432
432
  permission: 'configer:manual:base',
433
433
  iconName: this.$t('openatccomponents.overview.modelList18'),
434
434
  bgcolor: getTheme() === 'light' ? '#edf6ff' : '#243d59'
435
+ }, {
436
+ type: '自动分级控制',
437
+ id: 26,
438
+ iconClass: 'zidongfenjikongzhi',
439
+ permission: 'configer:manual:base',
440
+ iconName: this.$t('openatccomponents.overview.modelList26'),
441
+ bgcolor: getTheme() === 'light' ? '#edf6ff' : '#243d59'
435
442
  }
436
443
  ],
437
444
  othersControlList: [
@@ -431,6 +431,17 @@ PURPOSE. * See the Mulan PSL v2 for more details. **/
431
431
  p-id="12295"
432
432
  ></path>
433
433
  </svg>
434
+ <svg
435
+ v-if="type === '自动分级控制'"
436
+ t="1754012035508" class="icon"
437
+ viewBox="0 0 1024 1024"
438
+ version="1.1"
439
+ xmlns="http://www.w3.org/2000/svg"
440
+ p-id="21090"
441
+ :width="iconWidth"
442
+ :height="iconHeight"
443
+ >
444
+ <path d="M947.685353 711.851301h-34.260223v-121.814126c0-15.226766-11.420074-30.453532-30.453531-30.453532h-342.602231v-167.494424h137.040892c38.066914 0 64.713755-30.453532 64.713755-64.713754V114.200743c0-38.066914-30.453532-64.713755-64.713755-64.713754H346.228104c-38.066914-3.806691-68.520446 26.64684-68.520446 64.713754v216.981413c0 38.066914 30.453532 64.713755 64.713755 64.713755h137.040892v167.494424h-342.602231c-15.226766 0-30.453532 11.420074-30.453531 30.453531v121.814127h-26.64684c-38.066914 0-64.713755 30.453532-64.713755 64.713754v137.040892c0 38.066914 30.453532 64.713755 64.713755 64.713755h137.040892c38.066914 0 64.713755-30.453532 64.713754-64.713755v-137.040892c0-38.066914-30.453532-64.713755-64.713754-64.713754H167.313606v-91.360595h315.95539v91.360595h-41.873606c-38.066914 0-64.713755 30.453532-64.713754 64.713754v137.040892c0 38.066914 30.453532 64.713755 64.713754 64.713755h137.040893c38.066914 0 64.713755-30.453532 64.713754-64.713755v-137.040892c0-38.066914-30.453532-64.713755-64.713754-64.713754h-41.873606v-91.360595H852.518067v91.360595h-45.680297c-38.066914 0-64.713755 30.453532-64.713755 64.713754v137.040892c0 38.066914 30.453532 64.713755 64.713755 64.713755h137.040892c38.066914 0 64.713755-30.453532 64.713754-64.713755v-137.040892c3.806691-38.066914-22.840149-68.520446-60.907063-68.520446z m7.613383 205.561338c0 3.806691-3.806691 7.613383-7.613383 7.613383h-137.040892c-3.806691 0-7.613383-3.806691-7.613383-7.613383v-137.040892c0-3.806691 3.806691-7.613383 7.613383-7.613383h137.040892c3.806691 0 7.613383 3.806691 7.613383 7.613383v137.040892z" p-id="21091"></path></svg>
434
445
  </span>
435
446
  </template>
436
447
 
@@ -1265,6 +1265,7 @@ export default {
1265
1265
  })
1266
1266
  submitdata.data.stagesList = this.patternOne[0].stagesList
1267
1267
  }
1268
+ submitdata.data.contrloType = this.contrloType
1268
1269
  submitdata.data.offset = this.offset
1269
1270
  if (this.patternOne.length === 0) {
1270
1271
  submitdata.data.rings = this.planPattern.rings