...
|
...
|
@@ -5,9 +5,10 @@ |
5
|
5
|
PlayCircleOutlined,
|
6
|
6
|
QuestionCircleOutlined,
|
7
|
7
|
} from '@ant-design/icons-vue';
|
|
8
|
+ import { Authority } from '/@/components/Authority';
|
8
|
9
|
import { TaskRecordType } from '/@/api/task/model';
|
9
|
10
|
import { StateEnum, TaskTargetNameEnum, TaskTypeEnum } from '../../config';
|
10
|
|
- import { TaskTypeNameEnum } from '../../config';
|
|
11
|
+ import { TaskTypeNameEnum, PermissionEnum } from '../../config';
|
11
|
12
|
import AuthDropDown from '/@/components/Widget/AuthDropDown.vue';
|
12
|
13
|
import { useMessage } from '/@/hooks/web/useMessage';
|
13
|
14
|
import { cancelTask, deleteTask, updateState } from '/@/api/task';
|
...
|
...
|
@@ -128,13 +129,16 @@ |
128
|
129
|
{
|
129
|
130
|
text: '编辑',
|
130
|
131
|
event: DropMenuEvent.DELETE,
|
|
132
|
+ disabled: !!getRecord.state,
|
131
|
133
|
icon: 'ant-design:edit-outlined',
|
|
134
|
+ auth: PermissionEnum.UPDATE,
|
132
|
135
|
onClick: emit.bind(null, 'edit', getRecord),
|
133
|
136
|
},
|
134
|
137
|
{
|
135
|
138
|
text: '删除',
|
136
|
139
|
event: DropMenuEvent.DELETE,
|
137
|
140
|
icon: 'ant-design:delete-outlined',
|
|
141
|
+ auth: PermissionEnum.DELETE,
|
138
|
142
|
popconfirm: {
|
139
|
143
|
title: '是否确认删除操作?',
|
140
|
144
|
onConfirm: handleDelete.bind(null),
|
...
|
...
|
@@ -154,13 +158,15 @@ |
154
|
158
|
>
|
155
|
159
|
{{ getRecord.state === StateEnum.ENABLE ? '已启用' : '未启用' }}
|
156
|
160
|
</span>
|
157
|
|
- <Switch
|
158
|
|
- v-if="!deviceTaskCardMode"
|
159
|
|
- :checked="getRecord.state === StateEnum.ENABLE"
|
160
|
|
- :loading="loading"
|
161
|
|
- size="small"
|
162
|
|
- @click="handleSwitchState"
|
163
|
|
- />
|
|
161
|
+ <Authority :value="PermissionEnum.START_TASK">
|
|
162
|
+ <Switch
|
|
163
|
+ v-if="!deviceTaskCardMode"
|
|
164
|
+ :checked="getRecord.state === StateEnum.ENABLE"
|
|
165
|
+ :loading="loading"
|
|
166
|
+ size="small"
|
|
167
|
+ @click="handleSwitchState"
|
|
168
|
+ />
|
|
169
|
+ </Authority>
|
164
|
170
|
</div>
|
165
|
171
|
<div class="flex gap-2 items-center">
|
166
|
172
|
<div
|
...
|
...
|
@@ -194,30 +200,36 @@ |
194
|
200
|
>
|
195
|
201
|
<div class="text-gray-400 text-xs truncate">
|
196
|
202
|
<span class="mr-2">间隔时间重复</span>
|
197
|
|
- <span>{{ `${getLastExecuteTime.value}${getLastExecuteTime.unitName}前` }}</span>
|
|
203
|
+ <span>{{
|
|
204
|
+ getLastExecuteTime.value
|
|
205
|
+ ? `${getLastExecuteTime.value}${getLastExecuteTime.unitName}前`
|
|
206
|
+ : '刚刚'
|
|
207
|
+ }}</span>
|
198
|
208
|
</div>
|
199
|
209
|
</Tooltip>
|
200
|
210
|
</div>
|
201
|
211
|
|
202
|
|
- <section
|
203
|
|
- v-if="deviceTaskCardMode"
|
204
|
|
- class="border-t mt-4 pt-2 text-sm border-gray-100 flex justify-between text-gray-400"
|
205
|
|
- >
|
206
|
|
- <div>
|
207
|
|
- <span>允许该设备</span>
|
208
|
|
- <Tooltip title="设置是否允许当前设备定时执行任务。该选项不影响手动执行任务。">
|
209
|
|
- <QuestionCircleOutlined class="ml-1" />
|
210
|
|
- </Tooltip>
|
211
|
|
- </div>
|
212
|
|
- <div>
|
213
|
|
- <Switch
|
214
|
|
- size="small"
|
215
|
|
- :loading="loading"
|
216
|
|
- :checked="getCancelState"
|
217
|
|
- @click="handleCancelTask"
|
218
|
|
- />
|
219
|
|
- </div>
|
220
|
|
- </section>
|
|
212
|
+ <Authority :value="PermissionEnum.ALLOW">
|
|
213
|
+ <section
|
|
214
|
+ v-if="deviceTaskCardMode"
|
|
215
|
+ class="border-t mt-4 pt-2 text-sm border-gray-100 flex justify-between text-gray-400"
|
|
216
|
+ >
|
|
217
|
+ <div>
|
|
218
|
+ <span>允许该设备</span>
|
|
219
|
+ <Tooltip title="设置是否允许当前设备定时执行任务。该选项不影响手动执行任务。">
|
|
220
|
+ <QuestionCircleOutlined class="ml-1" />
|
|
221
|
+ </Tooltip>
|
|
222
|
+ </div>
|
|
223
|
+ <div>
|
|
224
|
+ <Switch
|
|
225
|
+ size="small"
|
|
226
|
+ :loading="loading"
|
|
227
|
+ :checked="getCancelState"
|
|
228
|
+ @click="handleCancelTask"
|
|
229
|
+ />
|
|
230
|
+ </div>
|
|
231
|
+ </section>
|
|
232
|
+ </Authority>
|
221
|
233
|
</Card>
|
222
|
234
|
</template>
|
223
|
235
|
|
...
|
...
|
|