system-phone 3.1.89 → 3.1.90
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 +1 -1
- package/src/components/LoginApp.vue +1 -1
- package/src/components/iot/InstructMessage.vue +313 -313
- package/src/components/iot/IotBaseInfo.vue +97 -97
- package/src/plugins/validateStrongPasswordPhone.js +2 -2
- package/.serena/project.yml +0 -87
- package/src/assets/images/back.png +0 -0
package/package.json
CHANGED
|
@@ -377,7 +377,7 @@ export default {
|
|
|
377
377
|
console.log('获取参数结束')
|
|
378
378
|
this.loaderShow = false
|
|
379
379
|
// 弱口令验证
|
|
380
|
-
if (this.weakPassword && !(/^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[!@#$%^&*()_+\-=\[\]{};':"\\|,.<>\/?])(?!.*(123|321|abc|cba))[a-zA-Z\d!@#$%^&*()_+\-=\[\]{};':"\\|,.<>\/?]{
|
|
380
|
+
if (this.weakPassword && !(/^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[!@#$%^&*()_+\-=\[\]{};':"\\|,.<>\/?])(?!.*(123|321|abc|cba))[a-zA-Z\d!@#$%^&*()_+\-=\[\]{};':"\\|,.<>\/?]{12,16}$/.test(this.password))) {
|
|
381
381
|
await this.$showMessage('登录系统: 此账户的密码过于简单,请修改密码后重新登陆!!!', ['confirm'])
|
|
382
382
|
this.modifyPassword = true
|
|
383
383
|
return
|
|
@@ -1,313 +1,313 @@
|
|
|
1
|
-
<template>
|
|
2
|
-
<div class="flex " style="background: #f8f8f8">
|
|
3
|
-
<div class="auto bg-white" style="line-height: 32px;padding: 10px">
|
|
4
|
-
<label style="float: left">指令:{{row.f_instruct_title}} </label>
|
|
5
|
-
<div class="auto" style="float: right">
|
|
6
|
-
<!--<button type="button" class="btn btn-default btn-sm" @click="$back">返回</button>-->
|
|
7
|
-
<button type="button" class="btn btn-default btn-sm" @click="refresh">刷新</button>
|
|
8
|
-
<button type="button" class="btn btn-primary btn-sm" @click="cancle">取消</button>
|
|
9
|
-
<button type="button" class="btn btn-primary btn-sm" @click="resend">重送</button>
|
|
10
|
-
</div>
|
|
11
|
-
</div>
|
|
12
|
-
<div class="instruct-state flex-row bg-white" style="margin-top: 5px;height:auto;padding: 10px">
|
|
13
|
-
<div class="instruct-left col-sm-12 auto">
|
|
14
|
-
<div class="col-sm-6 col-md-6 col-xs-6 auto">
|
|
15
|
-
<p class="flex-row">
|
|
16
|
-
<span >指令状态:</span>
|
|
17
|
-
<span class="instruct-content" style="color: #499edf;font-size: 16px;font-weight: bold">{{row.f_instruct_state}}</span>
|
|
18
|
-
</p>
|
|
19
|
-
</div>
|
|
20
|
-
<div class="col-sm-6 col-md-6 col-xs-6 auto">
|
|
21
|
-
<p class="flex-row">
|
|
22
|
-
<span>执行状态:</span>
|
|
23
|
-
<span class="instruct-content" style="color: #499edf;font-size: 16px;font-weight: bold">{{row.f_receive_state}}</span>
|
|
24
|
-
</p>
|
|
25
|
-
</div>
|
|
26
|
-
<div class="col-sm-6 col-md-6 col-xs-6 auto">
|
|
27
|
-
<p class="flex-row">
|
|
28
|
-
<span>指令编号:</span>
|
|
29
|
-
<span class="instruct-content">{{row.id}}</span>
|
|
30
|
-
</p>
|
|
31
|
-
</div>
|
|
32
|
-
<div class="col-sm-6 col-md-6 col-xs-6 auto">
|
|
33
|
-
|
|
34
|
-
<p class="flex-row">
|
|
35
|
-
<span>表编号:</span>
|
|
36
|
-
<span class="instruct-content">{{row.f_user_id}}</span>
|
|
37
|
-
</p>
|
|
38
|
-
</div>
|
|
39
|
-
<div class="col-sm-6 col-md-6 col-xs-6 auto">
|
|
40
|
-
<p class="flex-row">
|
|
41
|
-
<span>表号:</span>
|
|
42
|
-
<span class="instruct-content">{{row.f_meternumber}}</span>
|
|
43
|
-
</p>
|
|
44
|
-
</div>
|
|
45
|
-
<div class="col-sm-6 col-md-6 col-xs-6 auto">
|
|
46
|
-
<p class="flex-row">
|
|
47
|
-
<span>操作人员:</span>
|
|
48
|
-
<span class="instruct-content">{{row.f_inputtor}}</span>
|
|
49
|
-
</p>
|
|
50
|
-
</div>
|
|
51
|
-
<div class="col-sm-6 col-md-6 col-xs-6 auto">
|
|
52
|
-
<p class="flex-row">
|
|
53
|
-
<span>指令说明:</span>
|
|
54
|
-
<span class="instruct-content">{{row.f_instruct_state}}</span>
|
|
55
|
-
</p>
|
|
56
|
-
</div>
|
|
57
|
-
<div class="col-sm-6 col-md-6 col-xs-6 auto">
|
|
58
|
-
<p class="flex-row">
|
|
59
|
-
<span>表厂别名:</span>
|
|
60
|
-
<span class="instruct-content">{{row.f_alias}}</span>
|
|
61
|
-
</p>
|
|
62
|
-
</div>
|
|
63
|
-
<div class="col-sm-6 col-md-6 col-xs-12 auto">
|
|
64
|
-
<p class="flex-row">
|
|
65
|
-
<span>生成时间:</span>
|
|
66
|
-
<span class="instruct-content" style="flex:3 !important;">{{row.f_instruct_date}}</span>
|
|
67
|
-
</p>
|
|
68
|
-
</div>
|
|
69
|
-
<div class="col-sm-6 col-md-6 col-xs-12 auto">
|
|
70
|
-
<p class="flex-row">
|
|
71
|
-
<span>最后发送时间:</span>
|
|
72
|
-
<span class="instruct-content" style="flex:3 !important;">{{row.f_send_date}}</span>
|
|
73
|
-
</p>
|
|
74
|
-
</div>
|
|
75
|
-
<div class="col-sm-6 col-md-6 col-xs-12 auto">
|
|
76
|
-
<p class="flex-row">
|
|
77
|
-
<span>最后响应时间:</span>
|
|
78
|
-
<span class="instruct-content" style="flex:3 !important;">{{row.f_callback_date}}</span>
|
|
79
|
-
</p>
|
|
80
|
-
</div>
|
|
81
|
-
</div>
|
|
82
|
-
|
|
83
|
-
</div>
|
|
84
|
-
<div class="auto bg-white" style="margin-top: 5px;padding: 10px">
|
|
85
|
-
<div class="title auto">
|
|
86
|
-
<span>指令状态</span>
|
|
87
|
-
</div>
|
|
88
|
-
<div class="flex-row" style="font-size: 10px;padding: 10px">
|
|
89
|
-
<timeline>
|
|
90
|
-
<timeline-item color="#499edf">
|
|
91
|
-
<p>待发送</p>
|
|
92
|
-
<p>指令已就绪</p>
|
|
93
|
-
<p>{{row.f_instruct_date}}</p>
|
|
94
|
-
</timeline-item>
|
|
95
|
-
<timeline-item :color="row.f_instruct_state==='已发送'?'#499edf':''" >
|
|
96
|
-
<p>已发送</p>
|
|
97
|
-
<p>已发送,等待响应结果</p>
|
|
98
|
-
<p>{{row.f_send_date}}</p>
|
|
99
|
-
</timeline-item>
|
|
100
|
-
<timeline-item color="red" v-if="row.f_instruct_state==='执行失败'">
|
|
101
|
-
<p>执行失败</p>
|
|
102
|
-
<p>失败,请查看响应结果</p>
|
|
103
|
-
<p>{{row.f_callback_date}}</p>
|
|
104
|
-
</timeline-item>
|
|
105
|
-
<timeline-item :color="row.f_instruct_state==='执行成功'?'#499edf':''" v-if="row.f_instruct_state!=='执行失败'">
|
|
106
|
-
<p>执行成功</p>
|
|
107
|
-
<p>指令已执行成功</p>
|
|
108
|
-
<p>{{row.f_callback_date}}</p>
|
|
109
|
-
</timeline-item>
|
|
110
|
-
</timeline>
|
|
111
|
-
<!--<div class="step">-->
|
|
112
|
-
<!--<div class="step-icon">-->
|
|
113
|
-
<!--<img src="../../assets/对号.png" class="send-line" style="height: 32px;width:32px;margin-bottom: 5px;padding-right: 5px" alt="" >-->
|
|
114
|
-
<!--</div>-->
|
|
115
|
-
<!--<p>待发送</p>-->
|
|
116
|
-
<!--<p>指令已就绪</p>-->
|
|
117
|
-
<!--<p>{{row.f_instruct_date}}</p>-->
|
|
118
|
-
|
|
119
|
-
<!--</div>-->
|
|
120
|
-
<!--<div class="step" >-->
|
|
121
|
-
<!--<div class="step-icon">-->
|
|
122
|
-
<!--<img src="../../assets/对号.png" style="height: 32px;width:32px;margin-bottom: 5px;padding-right: 5px" alt="" >-->
|
|
123
|
-
<!--</div>-->
|
|
124
|
-
<!--<p class="flex-row">待发送</p>-->
|
|
125
|
-
<!--<p class="flex-row">指令已发送</p>-->
|
|
126
|
-
<!--<p>{{row.f_send_date}}</p>-->
|
|
127
|
-
<!--</div>-->
|
|
128
|
-
|
|
129
|
-
<!--<div class="step" >-->
|
|
130
|
-
<!--<div style="height: auto">-->
|
|
131
|
-
<!--<img src="../../assets/对号.png" class="" style="height: 32px;width:32px;margin-bottom: 5px;padding-right: 5px" alt="" >-->
|
|
132
|
-
<!--</div>-->
|
|
133
|
-
<!--<p class="flex-row">待发送</p>-->
|
|
134
|
-
<!--<p>指令已执行成功</p>-->
|
|
135
|
-
<!--<p>{{row.f_callback_date}}</p>-->
|
|
136
|
-
<!--</div>-->
|
|
137
|
-
</div>
|
|
138
|
-
|
|
139
|
-
</div>
|
|
140
|
-
<div class="row bg-white" style="margin-top: 5px;">
|
|
141
|
-
<div class="content-head" style="background: #fafafa;height: 2em;">
|
|
142
|
-
<p style="padding-left: 10px;line-height: 2em">指令内容</p>
|
|
143
|
-
</div>
|
|
144
|
-
<div style="height: auto;padding: 10px" >
|
|
145
|
-
<p>{</p>
|
|
146
|
-
<p v-for="item in content">
|
|
147
|
-
<span>{{item}}</span>
|
|
148
|
-
<span v-if="$index<content.length-1">,</span>
|
|
149
|
-
</p>
|
|
150
|
-
<p>}</p>
|
|
151
|
-
</div>
|
|
152
|
-
</div>
|
|
153
|
-
</div>
|
|
154
|
-
</template>
|
|
155
|
-
<script>
|
|
156
|
-
import {HttpResetClass} from 'vue-client'
|
|
157
|
-
export default {
|
|
158
|
-
title: '指令信息',
|
|
159
|
-
data () {
|
|
160
|
-
return {
|
|
161
|
-
content:[],
|
|
162
|
-
msg: '',
|
|
163
|
-
show: false
|
|
164
|
-
}
|
|
165
|
-
},
|
|
166
|
-
props:['row'],
|
|
167
|
-
methods:{
|
|
168
|
-
refresh(){
|
|
169
|
-
let data = {
|
|
170
|
-
items: '*',
|
|
171
|
-
tablename: 't_instruct',
|
|
172
|
-
orderitem: 'id desc',
|
|
173
|
-
condition: ` id = '${this.row.id}'`
|
|
174
|
-
}
|
|
175
|
-
this.$resetpost(`${this.$androidUtil.getProxyUrl()}/rs/sql/iot_singleTable_OrderBy`, {data: data}).then((row) => {
|
|
176
|
-
// console.log('查询返回'+JSON.stringify(row))
|
|
177
|
-
this.row = row.data[0]
|
|
178
|
-
}).catch((e) => {
|
|
179
|
-
// console.log('正在维护!')
|
|
180
|
-
// console.log('错误信息+++++++'+JSON.stringify(e))
|
|
181
|
-
})
|
|
182
|
-
},
|
|
183
|
-
cancle(){
|
|
184
|
-
this.$showMessage(`您确认要取消指令吗?`, ['confirm', 'cancel']).then(async (res) => {
|
|
185
|
-
if (res === 'confirm') {
|
|
186
|
-
let http = new HttpResetClass()
|
|
187
|
-
let condition = `id = '${this.row.id}'`
|
|
188
|
-
// console.log('修改条件===' + JSON.stringify(condition))
|
|
189
|
-
http.load('POST', `${this.$androidUtil.getProxyUrl()}/rs/logic/cancelSendInstruct`, {data: {condition: condition}}).then((row) => {
|
|
190
|
-
this.$showMessage('取消指令操作成功!')
|
|
191
|
-
this.refresh()
|
|
192
|
-
// console.log('修改返回' + JSON.stringify(row))
|
|
193
|
-
// this.$showMessage('操作成功!将会在一段时间内重新生成开户指令!')
|
|
194
|
-
}).catch((e) => {
|
|
195
|
-
this.$showMessage('操作失败!请稍后重试!')
|
|
196
|
-
// console.log('错误信息+++++++'+JSON.stringify(e))
|
|
197
|
-
})
|
|
198
|
-
}
|
|
199
|
-
})
|
|
200
|
-
},
|
|
201
|
-
resend(){
|
|
202
|
-
this.$showMessage(`您确认要重新发送指令?`, ['confirm', 'cancel']).then(async (res) => {
|
|
203
|
-
if (res === 'confirm') {
|
|
204
|
-
let http = new HttpResetClass()
|
|
205
|
-
let condition = `id = '${this.row.id}'`
|
|
206
|
-
// console.log('修改条件===' + JSON.stringify(condition))
|
|
207
|
-
http.load('POST', `${this.$androidUtil.getProxyUrl()}/rs/logic/againSendInstruct`, {data: {condition: condition}}).then((row) => {
|
|
208
|
-
// console.log('修改返回' + JSON.stringify(row))
|
|
209
|
-
this.refresh()
|
|
210
|
-
this.$showMessage('操作成功!将会在一段时间内重新发送指令!')
|
|
211
|
-
}).catch((e) => {
|
|
212
|
-
this.$showMessage('操作失败!请稍后重试!')
|
|
213
|
-
// console.log('错误信息+++++++'+JSON.stringify(e))
|
|
214
|
-
})
|
|
215
|
-
}
|
|
216
|
-
})
|
|
217
|
-
},
|
|
218
|
-
getInitData(){
|
|
219
|
-
let data = JSON.parse(this.row.f_instruct_content)
|
|
220
|
-
this.content = []
|
|
221
|
-
for(let key in data){
|
|
222
|
-
let param = key+':'+data[key]
|
|
223
|
-
this.content.push(param)
|
|
224
|
-
}
|
|
225
|
-
},
|
|
226
|
-
},
|
|
227
|
-
watch:{
|
|
228
|
-
'row'(val){
|
|
229
|
-
if(val){
|
|
230
|
-
this.getInitData()
|
|
231
|
-
}
|
|
232
|
-
}
|
|
233
|
-
},
|
|
234
|
-
ready () {
|
|
235
|
-
this.getInitData()
|
|
236
|
-
}
|
|
237
|
-
}
|
|
238
|
-
</script>
|
|
239
|
-
<style media="screen" scoped>
|
|
240
|
-
div::-webkit-scrollbar {
|
|
241
|
-
width: 0 !important;
|
|
242
|
-
height: 0 !important;
|
|
243
|
-
}
|
|
244
|
-
|
|
245
|
-
div {
|
|
246
|
-
-ms-overflow-style: none;
|
|
247
|
-
overflow: -moz-scrollbars-none;
|
|
248
|
-
}
|
|
249
|
-
|
|
250
|
-
.font-head{
|
|
251
|
-
font-size: 14px;
|
|
252
|
-
font-weight: bold;
|
|
253
|
-
color: #333;
|
|
254
|
-
}
|
|
255
|
-
.instruct-content{
|
|
256
|
-
flex:1.5 !important;
|
|
257
|
-
}
|
|
258
|
-
.font-content{
|
|
259
|
-
font-size: 12px;
|
|
260
|
-
font-weight: normal;
|
|
261
|
-
color: #666666;
|
|
262
|
-
}
|
|
263
|
-
.meterinfo{
|
|
264
|
-
border:1px solid #eeeeee;
|
|
265
|
-
/*border-right: 2px solid #eeeeee;*/
|
|
266
|
-
}
|
|
267
|
-
.instruct-right div{
|
|
268
|
-
height: auto;
|
|
269
|
-
}
|
|
270
|
-
.instruct-state{
|
|
271
|
-
font-size: 14px;
|
|
272
|
-
}
|
|
273
|
-
.instruct{
|
|
274
|
-
font-size: 10px;
|
|
275
|
-
}
|
|
276
|
-
.step{
|
|
277
|
-
flex:1
|
|
278
|
-
}
|
|
279
|
-
.step-icon{
|
|
280
|
-
height: auto;
|
|
281
|
-
}
|
|
282
|
-
@media screen and (max-width: 1920px){
|
|
283
|
-
.step-icon:after{
|
|
284
|
-
content: "";
|
|
285
|
-
width: 30%;
|
|
286
|
-
height: 2px;
|
|
287
|
-
margin-top: 16px;
|
|
288
|
-
background-color: #6eb0e3;
|
|
289
|
-
position: absolute;
|
|
290
|
-
/*top: 10px;*/
|
|
291
|
-
|
|
292
|
-
}
|
|
293
|
-
}
|
|
294
|
-
@media screen and (max-width: 768px){
|
|
295
|
-
.step-icon:after{
|
|
296
|
-
content: "";
|
|
297
|
-
width: 22%;
|
|
298
|
-
height: 2px;
|
|
299
|
-
margin-top: 16px;
|
|
300
|
-
background-color: #6eb0e3;
|
|
301
|
-
position: absolute;
|
|
302
|
-
/*top: 10px;*/
|
|
303
|
-
|
|
304
|
-
}
|
|
305
|
-
}
|
|
306
|
-
|
|
307
|
-
.step p{
|
|
308
|
-
margin-bottom: 5px !important;
|
|
309
|
-
}
|
|
310
|
-
p span{
|
|
311
|
-
flex:1
|
|
312
|
-
}
|
|
313
|
-
</style>
|
|
1
|
+
<template>
|
|
2
|
+
<div class="flex " style="background: #f8f8f8">
|
|
3
|
+
<div class="auto bg-white" style="line-height: 32px;padding: 10px">
|
|
4
|
+
<label style="float: left">指令:{{row.f_instruct_title}} </label>
|
|
5
|
+
<div class="auto" style="float: right">
|
|
6
|
+
<!--<button type="button" class="btn btn-default btn-sm" @click="$back">返回</button>-->
|
|
7
|
+
<button type="button" class="btn btn-default btn-sm" @click="refresh">刷新</button>
|
|
8
|
+
<button type="button" class="btn btn-primary btn-sm" @click="cancle">取消</button>
|
|
9
|
+
<button type="button" class="btn btn-primary btn-sm" @click="resend">重送</button>
|
|
10
|
+
</div>
|
|
11
|
+
</div>
|
|
12
|
+
<div class="instruct-state flex-row bg-white" style="margin-top: 5px;height:auto;padding: 10px">
|
|
13
|
+
<div class="instruct-left col-sm-12 auto">
|
|
14
|
+
<div class="col-sm-6 col-md-6 col-xs-6 auto">
|
|
15
|
+
<p class="flex-row">
|
|
16
|
+
<span >指令状态:</span>
|
|
17
|
+
<span class="instruct-content" style="color: #499edf;font-size: 16px;font-weight: bold">{{row.f_instruct_state}}</span>
|
|
18
|
+
</p>
|
|
19
|
+
</div>
|
|
20
|
+
<div class="col-sm-6 col-md-6 col-xs-6 auto">
|
|
21
|
+
<p class="flex-row">
|
|
22
|
+
<span>执行状态:</span>
|
|
23
|
+
<span class="instruct-content" style="color: #499edf;font-size: 16px;font-weight: bold">{{row.f_receive_state}}</span>
|
|
24
|
+
</p>
|
|
25
|
+
</div>
|
|
26
|
+
<div class="col-sm-6 col-md-6 col-xs-6 auto">
|
|
27
|
+
<p class="flex-row">
|
|
28
|
+
<span>指令编号:</span>
|
|
29
|
+
<span class="instruct-content">{{row.id}}</span>
|
|
30
|
+
</p>
|
|
31
|
+
</div>
|
|
32
|
+
<div class="col-sm-6 col-md-6 col-xs-6 auto">
|
|
33
|
+
|
|
34
|
+
<p class="flex-row">
|
|
35
|
+
<span>表编号:</span>
|
|
36
|
+
<span class="instruct-content">{{row.f_user_id}}</span>
|
|
37
|
+
</p>
|
|
38
|
+
</div>
|
|
39
|
+
<div class="col-sm-6 col-md-6 col-xs-6 auto">
|
|
40
|
+
<p class="flex-row">
|
|
41
|
+
<span>表号:</span>
|
|
42
|
+
<span class="instruct-content">{{row.f_meternumber}}</span>
|
|
43
|
+
</p>
|
|
44
|
+
</div>
|
|
45
|
+
<div class="col-sm-6 col-md-6 col-xs-6 auto">
|
|
46
|
+
<p class="flex-row">
|
|
47
|
+
<span>操作人员:</span>
|
|
48
|
+
<span class="instruct-content">{{row.f_inputtor}}</span>
|
|
49
|
+
</p>
|
|
50
|
+
</div>
|
|
51
|
+
<div class="col-sm-6 col-md-6 col-xs-6 auto">
|
|
52
|
+
<p class="flex-row">
|
|
53
|
+
<span>指令说明:</span>
|
|
54
|
+
<span class="instruct-content">{{row.f_instruct_state}}</span>
|
|
55
|
+
</p>
|
|
56
|
+
</div>
|
|
57
|
+
<div class="col-sm-6 col-md-6 col-xs-6 auto">
|
|
58
|
+
<p class="flex-row">
|
|
59
|
+
<span>表厂别名:</span>
|
|
60
|
+
<span class="instruct-content">{{row.f_alias}}</span>
|
|
61
|
+
</p>
|
|
62
|
+
</div>
|
|
63
|
+
<div class="col-sm-6 col-md-6 col-xs-12 auto">
|
|
64
|
+
<p class="flex-row">
|
|
65
|
+
<span>生成时间:</span>
|
|
66
|
+
<span class="instruct-content" style="flex:3 !important;">{{row.f_instruct_date}}</span>
|
|
67
|
+
</p>
|
|
68
|
+
</div>
|
|
69
|
+
<div class="col-sm-6 col-md-6 col-xs-12 auto">
|
|
70
|
+
<p class="flex-row">
|
|
71
|
+
<span>最后发送时间:</span>
|
|
72
|
+
<span class="instruct-content" style="flex:3 !important;">{{row.f_send_date}}</span>
|
|
73
|
+
</p>
|
|
74
|
+
</div>
|
|
75
|
+
<div class="col-sm-6 col-md-6 col-xs-12 auto">
|
|
76
|
+
<p class="flex-row">
|
|
77
|
+
<span>最后响应时间:</span>
|
|
78
|
+
<span class="instruct-content" style="flex:3 !important;">{{row.f_callback_date}}</span>
|
|
79
|
+
</p>
|
|
80
|
+
</div>
|
|
81
|
+
</div>
|
|
82
|
+
|
|
83
|
+
</div>
|
|
84
|
+
<div class="auto bg-white" style="margin-top: 5px;padding: 10px">
|
|
85
|
+
<div class="title auto">
|
|
86
|
+
<span>指令状态</span>
|
|
87
|
+
</div>
|
|
88
|
+
<div class="flex-row" style="font-size: 10px;padding: 10px">
|
|
89
|
+
<timeline>
|
|
90
|
+
<timeline-item color="#499edf">
|
|
91
|
+
<p>待发送</p>
|
|
92
|
+
<p>指令已就绪</p>
|
|
93
|
+
<p>{{row.f_instruct_date}}</p>
|
|
94
|
+
</timeline-item>
|
|
95
|
+
<timeline-item :color="row.f_instruct_state==='已发送'?'#499edf':''" >
|
|
96
|
+
<p>已发送</p>
|
|
97
|
+
<p>已发送,等待响应结果</p>
|
|
98
|
+
<p>{{row.f_send_date}}</p>
|
|
99
|
+
</timeline-item>
|
|
100
|
+
<timeline-item color="red" v-if="row.f_instruct_state==='执行失败'">
|
|
101
|
+
<p>执行失败</p>
|
|
102
|
+
<p>失败,请查看响应结果</p>
|
|
103
|
+
<p>{{row.f_callback_date}}</p>
|
|
104
|
+
</timeline-item>
|
|
105
|
+
<timeline-item :color="row.f_instruct_state==='执行成功'?'#499edf':''" v-if="row.f_instruct_state!=='执行失败'">
|
|
106
|
+
<p>执行成功</p>
|
|
107
|
+
<p>指令已执行成功</p>
|
|
108
|
+
<p>{{row.f_callback_date}}</p>
|
|
109
|
+
</timeline-item>
|
|
110
|
+
</timeline>
|
|
111
|
+
<!--<div class="step">-->
|
|
112
|
+
<!--<div class="step-icon">-->
|
|
113
|
+
<!--<img src="../../assets/对号.png" class="send-line" style="height: 32px;width:32px;margin-bottom: 5px;padding-right: 5px" alt="" >-->
|
|
114
|
+
<!--</div>-->
|
|
115
|
+
<!--<p>待发送</p>-->
|
|
116
|
+
<!--<p>指令已就绪</p>-->
|
|
117
|
+
<!--<p>{{row.f_instruct_date}}</p>-->
|
|
118
|
+
|
|
119
|
+
<!--</div>-->
|
|
120
|
+
<!--<div class="step" >-->
|
|
121
|
+
<!--<div class="step-icon">-->
|
|
122
|
+
<!--<img src="../../assets/对号.png" style="height: 32px;width:32px;margin-bottom: 5px;padding-right: 5px" alt="" >-->
|
|
123
|
+
<!--</div>-->
|
|
124
|
+
<!--<p class="flex-row">待发送</p>-->
|
|
125
|
+
<!--<p class="flex-row">指令已发送</p>-->
|
|
126
|
+
<!--<p>{{row.f_send_date}}</p>-->
|
|
127
|
+
<!--</div>-->
|
|
128
|
+
|
|
129
|
+
<!--<div class="step" >-->
|
|
130
|
+
<!--<div style="height: auto">-->
|
|
131
|
+
<!--<img src="../../assets/对号.png" class="" style="height: 32px;width:32px;margin-bottom: 5px;padding-right: 5px" alt="" >-->
|
|
132
|
+
<!--</div>-->
|
|
133
|
+
<!--<p class="flex-row">待发送</p>-->
|
|
134
|
+
<!--<p>指令已执行成功</p>-->
|
|
135
|
+
<!--<p>{{row.f_callback_date}}</p>-->
|
|
136
|
+
<!--</div>-->
|
|
137
|
+
</div>
|
|
138
|
+
|
|
139
|
+
</div>
|
|
140
|
+
<div class="row bg-white" style="margin-top: 5px;">
|
|
141
|
+
<div class="content-head" style="background: #fafafa;height: 2em;">
|
|
142
|
+
<p style="padding-left: 10px;line-height: 2em">指令内容</p>
|
|
143
|
+
</div>
|
|
144
|
+
<div style="height: auto;padding: 10px" >
|
|
145
|
+
<p>{</p>
|
|
146
|
+
<p v-for="item in content">
|
|
147
|
+
<span>{{item}}</span>
|
|
148
|
+
<span v-if="$index<content.length-1">,</span>
|
|
149
|
+
</p>
|
|
150
|
+
<p>}</p>
|
|
151
|
+
</div>
|
|
152
|
+
</div>
|
|
153
|
+
</div>
|
|
154
|
+
</template>
|
|
155
|
+
<script>
|
|
156
|
+
import {HttpResetClass} from 'vue-client'
|
|
157
|
+
export default {
|
|
158
|
+
title: '指令信息',
|
|
159
|
+
data () {
|
|
160
|
+
return {
|
|
161
|
+
content:[],
|
|
162
|
+
msg: '',
|
|
163
|
+
show: false
|
|
164
|
+
}
|
|
165
|
+
},
|
|
166
|
+
props:['row'],
|
|
167
|
+
methods:{
|
|
168
|
+
refresh(){
|
|
169
|
+
let data = {
|
|
170
|
+
items: '*',
|
|
171
|
+
tablename: 't_instruct',
|
|
172
|
+
orderitem: 'id desc',
|
|
173
|
+
condition: ` id = '${this.row.id}'`
|
|
174
|
+
}
|
|
175
|
+
this.$resetpost(`${this.$androidUtil.getProxyUrl()}/rs/sql/iot_singleTable_OrderBy`, {data: data}).then((row) => {
|
|
176
|
+
// console.log('查询返回'+JSON.stringify(row))
|
|
177
|
+
this.row = row.data[0]
|
|
178
|
+
}).catch((e) => {
|
|
179
|
+
// console.log('正在维护!')
|
|
180
|
+
// console.log('错误信息+++++++'+JSON.stringify(e))
|
|
181
|
+
})
|
|
182
|
+
},
|
|
183
|
+
cancle(){
|
|
184
|
+
this.$showMessage(`您确认要取消指令吗?`, ['confirm', 'cancel']).then(async (res) => {
|
|
185
|
+
if (res === 'confirm') {
|
|
186
|
+
let http = new HttpResetClass()
|
|
187
|
+
let condition = `id = '${this.row.id}'`
|
|
188
|
+
// console.log('修改条件===' + JSON.stringify(condition))
|
|
189
|
+
http.load('POST', `${this.$androidUtil.getProxyUrl()}/rs/logic/cancelSendInstruct`, {data: {condition: condition}}).then((row) => {
|
|
190
|
+
this.$showMessage('取消指令操作成功!')
|
|
191
|
+
this.refresh()
|
|
192
|
+
// console.log('修改返回' + JSON.stringify(row))
|
|
193
|
+
// this.$showMessage('操作成功!将会在一段时间内重新生成开户指令!')
|
|
194
|
+
}).catch((e) => {
|
|
195
|
+
this.$showMessage('操作失败!请稍后重试!')
|
|
196
|
+
// console.log('错误信息+++++++'+JSON.stringify(e))
|
|
197
|
+
})
|
|
198
|
+
}
|
|
199
|
+
})
|
|
200
|
+
},
|
|
201
|
+
resend(){
|
|
202
|
+
this.$showMessage(`您确认要重新发送指令?`, ['confirm', 'cancel']).then(async (res) => {
|
|
203
|
+
if (res === 'confirm') {
|
|
204
|
+
let http = new HttpResetClass()
|
|
205
|
+
let condition = `id = '${this.row.id}'`
|
|
206
|
+
// console.log('修改条件===' + JSON.stringify(condition))
|
|
207
|
+
http.load('POST', `${this.$androidUtil.getProxyUrl()}/rs/logic/againSendInstruct`, {data: {condition: condition}}).then((row) => {
|
|
208
|
+
// console.log('修改返回' + JSON.stringify(row))
|
|
209
|
+
this.refresh()
|
|
210
|
+
this.$showMessage('操作成功!将会在一段时间内重新发送指令!')
|
|
211
|
+
}).catch((e) => {
|
|
212
|
+
this.$showMessage('操作失败!请稍后重试!')
|
|
213
|
+
// console.log('错误信息+++++++'+JSON.stringify(e))
|
|
214
|
+
})
|
|
215
|
+
}
|
|
216
|
+
})
|
|
217
|
+
},
|
|
218
|
+
getInitData(){
|
|
219
|
+
let data = JSON.parse(this.row.f_instruct_content)
|
|
220
|
+
this.content = []
|
|
221
|
+
for(let key in data){
|
|
222
|
+
let param = key+':'+data[key]
|
|
223
|
+
this.content.push(param)
|
|
224
|
+
}
|
|
225
|
+
},
|
|
226
|
+
},
|
|
227
|
+
watch:{
|
|
228
|
+
'row'(val){
|
|
229
|
+
if(val){
|
|
230
|
+
this.getInitData()
|
|
231
|
+
}
|
|
232
|
+
}
|
|
233
|
+
},
|
|
234
|
+
ready () {
|
|
235
|
+
this.getInitData()
|
|
236
|
+
}
|
|
237
|
+
}
|
|
238
|
+
</script>
|
|
239
|
+
<style media="screen" scoped>
|
|
240
|
+
div::-webkit-scrollbar {
|
|
241
|
+
width: 0 !important;
|
|
242
|
+
height: 0 !important;
|
|
243
|
+
}
|
|
244
|
+
|
|
245
|
+
div {
|
|
246
|
+
-ms-overflow-style: none;
|
|
247
|
+
overflow: -moz-scrollbars-none;
|
|
248
|
+
}
|
|
249
|
+
|
|
250
|
+
.font-head{
|
|
251
|
+
font-size: 14px;
|
|
252
|
+
font-weight: bold;
|
|
253
|
+
color: #333;
|
|
254
|
+
}
|
|
255
|
+
.instruct-content{
|
|
256
|
+
flex:1.5 !important;
|
|
257
|
+
}
|
|
258
|
+
.font-content{
|
|
259
|
+
font-size: 12px;
|
|
260
|
+
font-weight: normal;
|
|
261
|
+
color: #666666;
|
|
262
|
+
}
|
|
263
|
+
.meterinfo{
|
|
264
|
+
border:1px solid #eeeeee;
|
|
265
|
+
/*border-right: 2px solid #eeeeee;*/
|
|
266
|
+
}
|
|
267
|
+
.instruct-right div{
|
|
268
|
+
height: auto;
|
|
269
|
+
}
|
|
270
|
+
.instruct-state{
|
|
271
|
+
font-size: 14px;
|
|
272
|
+
}
|
|
273
|
+
.instruct{
|
|
274
|
+
font-size: 10px;
|
|
275
|
+
}
|
|
276
|
+
.step{
|
|
277
|
+
flex:1
|
|
278
|
+
}
|
|
279
|
+
.step-icon{
|
|
280
|
+
height: auto;
|
|
281
|
+
}
|
|
282
|
+
@media screen and (max-width: 1920px){
|
|
283
|
+
.step-icon:after{
|
|
284
|
+
content: "";
|
|
285
|
+
width: 30%;
|
|
286
|
+
height: 2px;
|
|
287
|
+
margin-top: 16px;
|
|
288
|
+
background-color: #6eb0e3;
|
|
289
|
+
position: absolute;
|
|
290
|
+
/*top: 10px;*/
|
|
291
|
+
|
|
292
|
+
}
|
|
293
|
+
}
|
|
294
|
+
@media screen and (max-width: 768px){
|
|
295
|
+
.step-icon:after{
|
|
296
|
+
content: "";
|
|
297
|
+
width: 22%;
|
|
298
|
+
height: 2px;
|
|
299
|
+
margin-top: 16px;
|
|
300
|
+
background-color: #6eb0e3;
|
|
301
|
+
position: absolute;
|
|
302
|
+
/*top: 10px;*/
|
|
303
|
+
|
|
304
|
+
}
|
|
305
|
+
}
|
|
306
|
+
|
|
307
|
+
.step p{
|
|
308
|
+
margin-bottom: 5px !important;
|
|
309
|
+
}
|
|
310
|
+
p span{
|
|
311
|
+
flex:1
|
|
312
|
+
}
|
|
313
|
+
</style>
|
|
@@ -1,97 +1,97 @@
|
|
|
1
|
-
<template>
|
|
2
|
-
<div class="flex">
|
|
3
|
-
<div class="cols-sm-12 col-md-12 col-xs-12 " >
|
|
4
|
-
<div class="col-sm-3 col-md-3 col-xs-4 meterinfo">
|
|
5
|
-
<div class="flex" style="padding: 0.5rem;align-items: center">
|
|
6
|
-
<img src="../../assets/pinpai.png" style="height:32px;width:32px;margin-bottom: 5px" alt="" >
|
|
7
|
-
<span class="font-content">表具品牌</span>
|
|
8
|
-
<span class="font-head">{{row.f_meter_brand}}</span>
|
|
9
|
-
</div>
|
|
10
|
-
|
|
11
|
-
</div>
|
|
12
|
-
<div class="col-sm-3 col-md-3 col-xs-4 meterinfo">
|
|
13
|
-
<div class="flex" style="padding: 0.5rem;align-items: center">
|
|
14
|
-
<img src="../../assets/leixing.png" style="height:32px;width:32px;margin-bottom: 5px" alt="" >
|
|
15
|
-
<span class="font-content">表具类型</span>
|
|
16
|
-
<span class="font-head">{{row.f_meter_type}}</span>
|
|
17
|
-
</div>
|
|
18
|
-
</div>
|
|
19
|
-
<div class="col-sm-3 col-md-3 col-xs-4 meterinfo">
|
|
20
|
-
<div class="flex" style="padding: 0.5rem;align-items: center">
|
|
21
|
-
<img src="../../assets/biaohao.png" style="height:32px;width:32px;margin-bottom: 5px" alt="" >
|
|
22
|
-
<span class="font-content">表号</span>
|
|
23
|
-
<span class="font-head">{{row.f_meternumber}}</span>
|
|
24
|
-
</div>
|
|
25
|
-
</div>
|
|
26
|
-
<div class="col-sm-3 col-md-3 col-xs-4 meterinfo">
|
|
27
|
-
<div class="flex" style="padding: 0.5rem;align-items: center">
|
|
28
|
-
<img src="../../assets/guige.png" style="height:32px;width:32px;margin-bottom: 5px" alt="" >
|
|
29
|
-
<span class="font-content">表具规格</span>
|
|
30
|
-
<span class="font-head">{{row.f_meter_style}}</span>
|
|
31
|
-
</div>
|
|
32
|
-
</div>
|
|
33
|
-
<div class="col-sm-3 col-md-3 col-xs-4 meterinfo">
|
|
34
|
-
<div class="flex" style="padding: 0.5rem;align-items: center">
|
|
35
|
-
<img src="../../assets/xinghao.png" style="height:32px;width:32px;margin-bottom: 5px" alt="" >
|
|
36
|
-
<span class="font-content">表具型号</span>
|
|
37
|
-
<span class="font-head">{{row.f_type}}</span>
|
|
38
|
-
</div>
|
|
39
|
-
</div>
|
|
40
|
-
<div class="col-sm-3 col-md-3 col-xs-4 meterinfo">
|
|
41
|
-
<div class="flex" style="padding: 0.5rem;align-items: center">
|
|
42
|
-
<img src="../../assets/bieming.png" style="height:32px;width:32px;margin-bottom: 5px" alt="" >
|
|
43
|
-
<span class="font-content">表具别名</span>
|
|
44
|
-
<span class="font-head">{{row.f_alias}}</span>
|
|
45
|
-
</div>
|
|
46
|
-
</div>
|
|
47
|
-
<div class="col-sm-3 col-md-3 col-xs-4 meterinfo">
|
|
48
|
-
<div class="flex" style="padding: 0.5rem;align-items: center">
|
|
49
|
-
<img src="../../assets/yue.png" style="height:32px;width:32px;margin-bottom: 5px" alt="" >
|
|
50
|
-
<span class="font-content">剩余金额</span>
|
|
51
|
-
<span class="font-head">{{row.f_balance_amount}}</span>
|
|
52
|
-
</div>
|
|
53
|
-
</div>
|
|
54
|
-
<div class="col-sm-3 col-md-3 col-xs-4 meterinfo">
|
|
55
|
-
<div class="flex" style="padding: 0.5rem;align-items: center">
|
|
56
|
-
<img src="../../assets/qiliang.png" style="height:32px;width:32px;margin-bottom: 5px" alt="" >
|
|
57
|
-
<span class="font-content">累计用气量</span>
|
|
58
|
-
<span class="font-head">{{row.f_balance_gas}}</span>
|
|
59
|
-
</div>
|
|
60
|
-
</div>
|
|
61
|
-
</div>
|
|
62
|
-
</div>
|
|
63
|
-
</template>
|
|
64
|
-
|
|
65
|
-
<script>
|
|
66
|
-
export default {
|
|
67
|
-
title: '基础信息',
|
|
68
|
-
data () {
|
|
69
|
-
return {
|
|
70
|
-
msg: '',
|
|
71
|
-
show: false
|
|
72
|
-
}
|
|
73
|
-
},
|
|
74
|
-
props:['row'],
|
|
75
|
-
ready () {
|
|
76
|
-
// this.$appdata.load().then(() => {
|
|
77
|
-
// this.$emit('ready')
|
|
78
|
-
// })
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
|
-
</script>
|
|
82
|
-
<style media="screen" scoped>
|
|
83
|
-
.font-head{
|
|
84
|
-
font-size: 14px;
|
|
85
|
-
font-weight: bold;
|
|
86
|
-
color: #333;
|
|
87
|
-
}
|
|
88
|
-
.font-content{
|
|
89
|
-
font-size: 12px;
|
|
90
|
-
font-weight: normal;
|
|
91
|
-
color: #666666;
|
|
92
|
-
}
|
|
93
|
-
.meterinfo{
|
|
94
|
-
border:1px solid #eeeeee;
|
|
95
|
-
/*border-right: 2px solid #eeeeee;*/
|
|
96
|
-
}
|
|
97
|
-
</style>
|
|
1
|
+
<template>
|
|
2
|
+
<div class="flex">
|
|
3
|
+
<div class="cols-sm-12 col-md-12 col-xs-12 " >
|
|
4
|
+
<div class="col-sm-3 col-md-3 col-xs-4 meterinfo">
|
|
5
|
+
<div class="flex" style="padding: 0.5rem;align-items: center">
|
|
6
|
+
<img src="../../assets/pinpai.png" style="height:32px;width:32px;margin-bottom: 5px" alt="" >
|
|
7
|
+
<span class="font-content">表具品牌</span>
|
|
8
|
+
<span class="font-head">{{row.f_meter_brand}}</span>
|
|
9
|
+
</div>
|
|
10
|
+
|
|
11
|
+
</div>
|
|
12
|
+
<div class="col-sm-3 col-md-3 col-xs-4 meterinfo">
|
|
13
|
+
<div class="flex" style="padding: 0.5rem;align-items: center">
|
|
14
|
+
<img src="../../assets/leixing.png" style="height:32px;width:32px;margin-bottom: 5px" alt="" >
|
|
15
|
+
<span class="font-content">表具类型</span>
|
|
16
|
+
<span class="font-head">{{row.f_meter_type}}</span>
|
|
17
|
+
</div>
|
|
18
|
+
</div>
|
|
19
|
+
<div class="col-sm-3 col-md-3 col-xs-4 meterinfo">
|
|
20
|
+
<div class="flex" style="padding: 0.5rem;align-items: center">
|
|
21
|
+
<img src="../../assets/biaohao.png" style="height:32px;width:32px;margin-bottom: 5px" alt="" >
|
|
22
|
+
<span class="font-content">表号</span>
|
|
23
|
+
<span class="font-head">{{row.f_meternumber}}</span>
|
|
24
|
+
</div>
|
|
25
|
+
</div>
|
|
26
|
+
<div class="col-sm-3 col-md-3 col-xs-4 meterinfo">
|
|
27
|
+
<div class="flex" style="padding: 0.5rem;align-items: center">
|
|
28
|
+
<img src="../../assets/guige.png" style="height:32px;width:32px;margin-bottom: 5px" alt="" >
|
|
29
|
+
<span class="font-content">表具规格</span>
|
|
30
|
+
<span class="font-head">{{row.f_meter_style}}</span>
|
|
31
|
+
</div>
|
|
32
|
+
</div>
|
|
33
|
+
<div class="col-sm-3 col-md-3 col-xs-4 meterinfo">
|
|
34
|
+
<div class="flex" style="padding: 0.5rem;align-items: center">
|
|
35
|
+
<img src="../../assets/xinghao.png" style="height:32px;width:32px;margin-bottom: 5px" alt="" >
|
|
36
|
+
<span class="font-content">表具型号</span>
|
|
37
|
+
<span class="font-head">{{row.f_type}}</span>
|
|
38
|
+
</div>
|
|
39
|
+
</div>
|
|
40
|
+
<div class="col-sm-3 col-md-3 col-xs-4 meterinfo">
|
|
41
|
+
<div class="flex" style="padding: 0.5rem;align-items: center">
|
|
42
|
+
<img src="../../assets/bieming.png" style="height:32px;width:32px;margin-bottom: 5px" alt="" >
|
|
43
|
+
<span class="font-content">表具别名</span>
|
|
44
|
+
<span class="font-head">{{row.f_alias}}</span>
|
|
45
|
+
</div>
|
|
46
|
+
</div>
|
|
47
|
+
<div class="col-sm-3 col-md-3 col-xs-4 meterinfo">
|
|
48
|
+
<div class="flex" style="padding: 0.5rem;align-items: center">
|
|
49
|
+
<img src="../../assets/yue.png" style="height:32px;width:32px;margin-bottom: 5px" alt="" >
|
|
50
|
+
<span class="font-content">剩余金额</span>
|
|
51
|
+
<span class="font-head">{{row.f_balance_amount}}</span>
|
|
52
|
+
</div>
|
|
53
|
+
</div>
|
|
54
|
+
<div class="col-sm-3 col-md-3 col-xs-4 meterinfo">
|
|
55
|
+
<div class="flex" style="padding: 0.5rem;align-items: center">
|
|
56
|
+
<img src="../../assets/qiliang.png" style="height:32px;width:32px;margin-bottom: 5px" alt="" >
|
|
57
|
+
<span class="font-content">累计用气量</span>
|
|
58
|
+
<span class="font-head">{{row.f_balance_gas}}</span>
|
|
59
|
+
</div>
|
|
60
|
+
</div>
|
|
61
|
+
</div>
|
|
62
|
+
</div>
|
|
63
|
+
</template>
|
|
64
|
+
|
|
65
|
+
<script>
|
|
66
|
+
export default {
|
|
67
|
+
title: '基础信息',
|
|
68
|
+
data () {
|
|
69
|
+
return {
|
|
70
|
+
msg: '',
|
|
71
|
+
show: false
|
|
72
|
+
}
|
|
73
|
+
},
|
|
74
|
+
props:['row'],
|
|
75
|
+
ready () {
|
|
76
|
+
// this.$appdata.load().then(() => {
|
|
77
|
+
// this.$emit('ready')
|
|
78
|
+
// })
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
</script>
|
|
82
|
+
<style media="screen" scoped>
|
|
83
|
+
.font-head{
|
|
84
|
+
font-size: 14px;
|
|
85
|
+
font-weight: bold;
|
|
86
|
+
color: #333;
|
|
87
|
+
}
|
|
88
|
+
.font-content{
|
|
89
|
+
font-size: 12px;
|
|
90
|
+
font-weight: normal;
|
|
91
|
+
color: #666666;
|
|
92
|
+
}
|
|
93
|
+
.meterinfo{
|
|
94
|
+
border:1px solid #eeeeee;
|
|
95
|
+
/*border-right: 2px solid #eeeeee;*/
|
|
96
|
+
}
|
|
97
|
+
</style>
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
const REG_STRONG_PWD =
|
|
2
|
-
/^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[!@#$%^&*()_+\-=\[\]{};':"\\|,.<>\/?])(?!.*(123|321|abc|cba))[a-zA-Z\d!@#$%^&*()_+\-=\[\]{};':"\\|,.<>\/?]{
|
|
2
|
+
/^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[!@#$%^&*()_+\-=\[\]{};':"\\|,.<>\/?])(?!.*(123|321|abc|cba))[a-zA-Z\d!@#$%^&*()_+\-=\[\]{};':"\\|,.<>\/?]{12,16}$/;
|
|
3
3
|
|
|
4
4
|
// 常见密码列表(可以根据需要扩展)
|
|
5
5
|
const COMMON_PASSWORDS = [
|
|
@@ -125,7 +125,7 @@ export const validateStrongPasswordPhone = (password) => {
|
|
|
125
125
|
if (!REG_STRONG_PWD.test(password)) {
|
|
126
126
|
result.isValid = false;
|
|
127
127
|
result.errors.push(
|
|
128
|
-
"密码长度必须为
|
|
128
|
+
"密码长度必须为12-16位,且需同时包含大写字母、小写字母、数字和特殊字符"
|
|
129
129
|
);
|
|
130
130
|
return result;
|
|
131
131
|
}
|
package/.serena/project.yml
DELETED
|
@@ -1,87 +0,0 @@
|
|
|
1
|
-
# list of languages for which language servers are started; choose from:
|
|
2
|
-
# al bash clojure cpp csharp csharp_omnisharp
|
|
3
|
-
# dart elixir elm erlang fortran fsharp
|
|
4
|
-
# go groovy haskell java julia kotlin
|
|
5
|
-
# lua markdown nix pascal perl php
|
|
6
|
-
# powershell python python_jedi r rego ruby
|
|
7
|
-
# ruby_solargraph rust scala swift terraform toml
|
|
8
|
-
# typescript typescript_vts yaml zig
|
|
9
|
-
# Note:
|
|
10
|
-
# - For C, use cpp
|
|
11
|
-
# - For JavaScript, use typescript
|
|
12
|
-
# - For Free Pascal / Lazarus, use pascal
|
|
13
|
-
# Special requirements:
|
|
14
|
-
# - csharp: Requires the presence of a .sln file in the project folder.
|
|
15
|
-
# - pascal: Requires Free Pascal Compiler (fpc) and optionally Lazarus.
|
|
16
|
-
# When using multiple languages, the first language server that supports a given file will be used for that file.
|
|
17
|
-
# The first language is the default language and the respective language server will be used as a fallback.
|
|
18
|
-
# Note that when using the JetBrains backend, language servers are not used and this list is correspondingly ignored.
|
|
19
|
-
languages:
|
|
20
|
-
- vue
|
|
21
|
-
|
|
22
|
-
# the encoding used by text files in the project
|
|
23
|
-
# For a list of possible encodings, see https://docs.python.org/3.11/library/codecs.html#standard-encodings
|
|
24
|
-
encoding: "utf-8"
|
|
25
|
-
|
|
26
|
-
# whether to use the project's gitignore file to ignore files
|
|
27
|
-
# Added on 2025-04-07
|
|
28
|
-
ignore_all_files_in_gitignore: true
|
|
29
|
-
|
|
30
|
-
# list of additional paths to ignore
|
|
31
|
-
# same syntax as gitignore, so you can use * and **
|
|
32
|
-
# Was previously called `ignored_dirs`, please update your config if you are using that.
|
|
33
|
-
# Added (renamed) on 2025-04-07
|
|
34
|
-
ignored_paths: []
|
|
35
|
-
|
|
36
|
-
# whether the project is in read-only mode
|
|
37
|
-
# If set to true, all editing tools will be disabled and attempts to use them will result in an error
|
|
38
|
-
# Added on 2025-04-18
|
|
39
|
-
read_only: false
|
|
40
|
-
|
|
41
|
-
# list of tool names to exclude. We recommend not excluding any tools, see the readme for more details.
|
|
42
|
-
# Below is the complete list of tools for convenience.
|
|
43
|
-
# To make sure you have the latest list of tools, and to view their descriptions,
|
|
44
|
-
# execute `uv run scripts/print_tool_overview.py`.
|
|
45
|
-
#
|
|
46
|
-
# * `activate_project`: Activates a project by name.
|
|
47
|
-
# * `check_onboarding_performed`: Checks whether project onboarding was already performed.
|
|
48
|
-
# * `create_text_file`: Creates/overwrites a file in the project directory.
|
|
49
|
-
# * `delete_lines`: Deletes a range of lines within a file.
|
|
50
|
-
# * `delete_memory`: Deletes a memory from Serena's project-specific memory store.
|
|
51
|
-
# * `execute_shell_command`: Executes a shell command.
|
|
52
|
-
# * `find_referencing_code_snippets`: Finds code snippets in which the symbol at the given location is referenced.
|
|
53
|
-
# * `find_referencing_symbols`: Finds symbols that reference the symbol at the given location (optionally filtered by type).
|
|
54
|
-
# * `find_symbol`: Performs a global (or local) search for symbols with/containing a given name/substring (optionally filtered by type).
|
|
55
|
-
# * `get_current_config`: Prints the current configuration of the agent, including the active and available projects, tools, contexts, and modes.
|
|
56
|
-
# * `get_symbols_overview`: Gets an overview of the top-level symbols defined in a given file.
|
|
57
|
-
# * `initial_instructions`: Gets the initial instructions for the current project.
|
|
58
|
-
# Should only be used in settings where the system prompt cannot be set,
|
|
59
|
-
# e.g. in clients you have no control over, like Claude Desktop.
|
|
60
|
-
# * `insert_after_symbol`: Inserts content after the end of the definition of a given symbol.
|
|
61
|
-
# * `insert_at_line`: Inserts content at a given line in a file.
|
|
62
|
-
# * `insert_before_symbol`: Inserts content before the beginning of the definition of a given symbol.
|
|
63
|
-
# * `list_dir`: Lists files and directories in the given directory (optionally with recursion).
|
|
64
|
-
# * `list_memories`: Lists memories in Serena's project-specific memory store.
|
|
65
|
-
# * `onboarding`: Performs onboarding (identifying the project structure and essential tasks, e.g. for testing or building).
|
|
66
|
-
# * `prepare_for_new_conversation`: Provides instructions for preparing for a new conversation (in order to continue with the necessary context).
|
|
67
|
-
# * `read_file`: Reads a file within the project directory.
|
|
68
|
-
# * `read_memory`: Reads the memory with the given name from Serena's project-specific memory store.
|
|
69
|
-
# * `remove_project`: Removes a project from the Serena configuration.
|
|
70
|
-
# * `replace_lines`: Replaces a range of lines within a file with new content.
|
|
71
|
-
# * `replace_symbol_body`: Replaces the full definition of a symbol.
|
|
72
|
-
# * `restart_language_server`: Restarts the language server, may be necessary when edits not through Serena happen.
|
|
73
|
-
# * `search_for_pattern`: Performs a search for a pattern in the project.
|
|
74
|
-
# * `summarize_changes`: Provides instructions for summarizing the changes made to the codebase.
|
|
75
|
-
# * `switch_modes`: Activates modes by providing a list of their names
|
|
76
|
-
# * `think_about_collected_information`: Thinking tool for pondering the completeness of collected information.
|
|
77
|
-
# * `think_about_task_adherence`: Thinking tool for determining whether the agent is still on track with the current task.
|
|
78
|
-
# * `think_about_whether_you_are_done`: Thinking tool for determining whether the task is truly completed.
|
|
79
|
-
# * `write_memory`: Writes a named memory (for future reference) to Serena's project-specific memory store.
|
|
80
|
-
excluded_tools: []
|
|
81
|
-
|
|
82
|
-
# initial prompt for the project. It will always be given to the LLM upon activating the project
|
|
83
|
-
# (contrary to the memories, which are loaded on demand).
|
|
84
|
-
initial_prompt: ""
|
|
85
|
-
|
|
86
|
-
project_name: "SystemPhone"
|
|
87
|
-
included_optional_tools: []
|
|
Binary file
|