Skip to content

Commit 2f20356

Browse files
committed
feat: added priority in spider and schedule
crawlab-team/crawlab#1297
1 parent 9d426f8 commit 2f20356

File tree

10 files changed

+79
-38
lines changed

10 files changed

+79
-38
lines changed

src/components/schedule/ScheduleForm.vue

Lines changed: 33 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -95,6 +95,30 @@
9595
</cl-form-item>
9696
<!-- ./Row -->
9797

98+
<!-- Row -->
99+
<cl-form-item
100+
:span="2"
101+
:offset="2"
102+
:label="t('components.spider.form.priority')"
103+
prop="priority"
104+
>
105+
<el-select
106+
v-model="form.priority"
107+
:placeholder="t('components.spider.form.priority')"
108+
:disabled="isFormItemDisabled('priority')"
109+
id="priority"
110+
class-name="priority"
111+
>
112+
<el-option
113+
v-for="op in priorityOptions"
114+
:key="op.value"
115+
:label="op.label"
116+
:value="op.value"
117+
/>
118+
</el-select>
119+
</cl-form-item>
120+
<!-- ./Row -->
121+
98122
<!-- Row -->
99123
<cl-form-item
100124
:span="2"
@@ -128,30 +152,15 @@
128152
<!-- ./Row -->
129153

130154
<cl-form-item
131-
v-if="form.mode === TASK_MODE_SELECTED_NODE_TAGS"
132-
:span="4"
133-
:label="t('components.schedule.form.selectedTags')"
134-
prop="node_tags"
135-
required
136-
>
137-
<cl-check-tag-group
138-
v-locate="'node_tags'"
139-
v-model="form.node_tags"
140-
:disabled="isFormItemDisabled('node_tags')"
141-
:options="allNodeTags"
142-
/>
143-
</cl-form-item>
144-
145-
<cl-form-item
146-
v-if="[TASK_MODE_SELECTED_NODES, TASK_MODE_SELECTED_NODE_TAGS].includes(form.mode)"
155+
v-if="[TASK_MODE_SELECTED_NODES].includes(form.mode)"
147156
:span="4"
148157
:label="t('components.schedule.form.selectedNodes')"
149158
required
150159
>
151160
<cl-check-tag-group
152161
v-locate="'node_ids'"
153162
v-model="form.node_ids"
154-
:disabled="form.mode === TASK_MODE_SELECTED_NODE_TAGS && isFormItemDisabled('node_ids')"
163+
:disabled="isFormItemDisabled('node_ids')"
155164
:options="allNodeSelectOptions"
156165
/>
157166
</cl-form-item>
@@ -184,6 +193,7 @@ import useNode from '@/components/node/node';
184193
import {ElMessage} from 'element-plus';
185194
import {useI18n} from 'vue-i18n';
186195
import {sendEvent} from '@/admin/umeng';
196+
import useTask from "@/components/task/task";
187197
188198
export default defineComponent({
189199
name: 'ScheduleForm',
@@ -206,6 +216,11 @@ export default defineComponent({
206216
allListSelectOptions: allSpiderSelectOptions,
207217
} = useSpider(store);
208218
219+
// use task
220+
const {
221+
priorityOptions,
222+
} = useTask(store);
223+
209224
// use schedule
210225
const {
211226
form,
@@ -231,7 +246,7 @@ export default defineComponent({
231246
232247
allSpiderSelectOptions,
233248
allNodeSelectOptions,
234-
allNodeTags,
249+
priorityOptions,
235250
TASK_MODE_SELECTED_NODES,
236251
TASK_MODE_SELECTED_NODE_TAGS,
237252
onEnabledChange,

src/components/spider/RunSpiderDialog.vue

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -146,10 +146,10 @@ export default defineComponent({
146146
// get run options
147147
const getOptions = (): SpiderRunOptions => {
148148
return {
149-
mode: TASK_MODE_RANDOM,
149+
mode: spider.value.mode || TASK_MODE_RANDOM,
150150
cmd: spider.value.cmd,
151151
param: spider.value.param,
152-
priority: 5,
152+
priority: spider.value.priority || 5,
153153
};
154154
};
155155

src/components/spider/SpiderForm.vue

Lines changed: 37 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,30 @@
6767
</cl-form-item>
6868
<!-- ./Row -->
6969

70+
<!-- Row -->
71+
<cl-form-item
72+
:span="2"
73+
:offset="2"
74+
:label="t('components.spider.form.priority')"
75+
prop="priority"
76+
>
77+
<el-select
78+
v-model="form.priority"
79+
:placeholder="t('components.spider.form.priority')"
80+
:disabled="isFormItemDisabled('priority')"
81+
id="priority"
82+
class-name="priority"
83+
>
84+
<el-option
85+
v-for="op in priorityOptions"
86+
:key="op.value"
87+
:label="op.label"
88+
:value="op.value"
89+
/>
90+
</el-select>
91+
</cl-form-item>
92+
<!-- ./Row -->
93+
7094
<!-- Row -->
7195
<cl-form-item
7296
:span="2"
@@ -107,24 +131,9 @@
107131
</cl-form-item>
108132
<!-- ./Row -->
109133

134+
<!--Row-->
110135
<cl-form-item
111-
v-if="form.mode === TASK_MODE_SELECTED_NODE_TAGS"
112-
:span="4"
113-
:label="t('components.spider.form.selectedTags')"
114-
prop="node_tags"
115-
required
116-
>
117-
<cl-check-tag-group
118-
v-model="form.node_tags"
119-
:options="allNodeTags"
120-
:disabled="isFormItemDisabled('node_tags')"
121-
id="node-tags"
122-
class-name="node-tags"
123-
/>
124-
</cl-form-item>
125-
126-
<cl-form-item
127-
v-if="[TASK_MODE_SELECTED_NODES, TASK_MODE_SELECTED_NODE_TAGS].includes(form.mode)"
136+
v-if="[TASK_MODE_SELECTED_NODES].includes(form.mode)"
128137
:span="4"
129138
:label="t('components.spider.form.selectedNodes')"
130139
prop="node_ids"
@@ -133,12 +142,14 @@
133142
<cl-check-tag-group
134143
v-model="form.node_ids"
135144
:options="allNodeSelectOptions"
136-
:disabled="form.mode === TASK_MODE_SELECTED_NODE_TAGS && isFormItemDisabled('node_ids')"
145+
:disabled="isFormItemDisabled('node_ids')"
137146
id="node"
138147
class-name="nodes"
139148
/>
140149
</cl-form-item>
150+
<!--./Row-->
141151

152+
<!--Row-->
142153
<cl-form-item
143154
:span="4"
144155
:label="t('components.spider.form.description')"
@@ -153,6 +164,7 @@
153164
class="description"
154165
/>
155166
</cl-form-item>
167+
<!--./Row-->
156168
</cl-form>
157169
</template>
158170

@@ -167,6 +179,7 @@ import pinyin, {STYLE_NORMAL} from 'pinyin';
167179
import {isZeroObjectId} from '@/utils/mongo';
168180
import {useI18n} from 'vue-i18n';
169181
import useSpiderDetail from "@/views/spider/detail/useSpiderDetail";
182+
import useTask from "@/components/task/task";
170183
171184
export default defineComponent({
172185
name: 'SpiderForm',
@@ -188,6 +201,11 @@ export default defineComponent({
188201
allListSelectOptionsWithEmpty: allProjectSelectOptions,
189202
} = useProject(store);
190203
204+
// use task
205+
const {
206+
priorityOptions,
207+
} = useTask(store);
208+
191209
// use spider
192210
const {
193211
form,
@@ -237,6 +255,7 @@ export default defineComponent({
237255
allNodeSelectOptions,
238256
allNodeTags,
239257
allProjectSelectOptions,
258+
priorityOptions,
240259
onColInput,
241260
onDataCollectionSuggestionSelect,
242261
onDataCollectionInput,

src/i18n/lang/en/components/spider.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ const spider: LComponentsSpider = {
99
selectedTags: 'Selected Tags',
1010
selectedNodes: 'Selected Nodes',
1111
description: 'Description',
12+
priority: 'Priority',
1213
},
1314
actions: {
1415
files: {

src/i18n/lang/zh/components/spider.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ const spider: LComponentsSpider = {
99
selectedTags: '指定标签',
1010
selectedNodes: '指定节点',
1111
description: '描述',
12+
priority: '优先级',
1213
},
1314
actions: {
1415
files: {

src/interfaces/i18n/components/spider.d.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ interface LComponentsSpider {
99
selectedTags: string;
1010
selectedNodes: string;
1111
description: string;
12+
priority: string;
1213
};
1314
actions: {
1415
files: {

src/interfaces/models/spider.d.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ export declare global {
55
spider_type?: string;
66
cmd?: string;
77
param?: string;
8+
priority?: number;
89
col_id?: string;
910
col_name?: string;
1011
data_source_id?: string;

src/interfaces/views/schedule.d.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ interface Schedule {
77
cron?: string;
88
cmd?: string;
99
param?: string;
10+
priority?: number;
1011
mode?: TaskMode;
1112
node_ids?: string[];
1213
node_tags?: string[];

src/store/modules/schedule.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ const state = {
2222
return {
2323
enabled: true,
2424
mode: TASK_MODE_RANDOM,
25+
priority: 5,
2526
};
2627
},
2728
tabs: [

src/store/modules/spider.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ const state = {
3434
newFormFn: () => {
3535
return {
3636
mode: TASK_MODE_RANDOM,
37+
priority: 5,
3738
};
3839
},
3940
tabs: [

0 commit comments

Comments
 (0)