summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorhanyuxia <[email protected]>2024-11-07 13:36:35 +0800
committerhanyuxia <[email protected]>2024-11-07 13:36:35 +0800
commite811f7f269da8e80670a975c790d6700a9f6a7e0 (patch)
tree18f36ca8fbb208371dad8a395bde0d885d739dd2 /src
parent720f1aaab501606e8b715fe53760edb345592d2b (diff)
feat: ASW-144 playbook编辑和列表界面增加 type 属性
Diffstat (limited to 'src')
-rw-r--r--src/i18n/en.js4
-rw-r--r--src/i18n/zh.js4
-rw-r--r--src/views/playbooks/detail.vue28
-rw-r--r--src/views/playbooks/index.vue14
4 files changed, 44 insertions, 6 deletions
diff --git a/src/i18n/en.js b/src/i18n/en.js
index 7a0af05..06b34d4 100644
--- a/src/i18n/en.js
+++ b/src/i18n/en.js
@@ -331,10 +331,10 @@ export default {
playbook: 'Playbook',
new_playbook: 'New Playbook',
description: 'Description',
- playbook_file: 'Playbook file',
+ file: 'File',
upload_message_drag: 'Drag file here,or ',
upload_message_click: 'Click to upload',
- upload_tip: 'Only ZIP compressed files are supported, and the extracted files must be scripts with the .air extension.'
+ upload_tip: 'Compressing the Airtest script folder into a ZIP file.'
},
message: {
login_success: 'Login success',
diff --git a/src/i18n/zh.js b/src/i18n/zh.js
index 64eebef..2e7cdfb 100644
--- a/src/i18n/zh.js
+++ b/src/i18n/zh.js
@@ -331,10 +331,10 @@ export default {
playbook: '脚本',
new_playbook: '新脚本',
description: '描述',
- playbook_file: '脚本文件',
+ file: '文件',
upload_message_drag: '将文件拖到此处,或',
upload_message_click: '点击上传',
- upload_tip: '仅支持ZIP压缩文件,提取的文件必须是扩展名为.air的脚本。'
+ upload_tip: '将Airtest脚本文件夹压缩为ZIP文件。'
},
message: {
login_success: '登录成功',
diff --git a/src/views/playbooks/detail.vue b/src/views/playbooks/detail.vue
index c2155f8..31a7cea 100644
--- a/src/views/playbooks/detail.vue
+++ b/src/views/playbooks/detail.vue
@@ -25,6 +25,20 @@
:placeholder="t('overall.please_input')"
/>
</el-form-item>
+ <!-- type -->
+ <el-form-item
+ :label="t('overall.type') + ':'"
+ prop="type"
+ size="default"
+ >
+ <el-select v-model="ruleForm.type">
+ <el-option v-for="type in typeList"
+ :key="type.value"
+ :label="type.name"
+ :value="type.value"
+ />
+ </el-select>
+ </el-form-item>
<!-- description -->
<el-form-item
:label="t('overall.description') + ':'"
@@ -42,7 +56,7 @@
</el-form-item>
<!-- playbook file -->
<el-form-item
- :label="t('playbook.playbook_file') + ':'"
+ :label="t('playbook.file') + ':'"
prop="file"
size="default"
>
@@ -107,10 +121,18 @@ const workspace = computed(() => {
const ruleFormRef = ref(null);
const ruleForm = reactive({
name: '',
+ type: 'airtest_script',
description: '',
file: null,
});
+const typeList = reactive([
+ {
+ name: 'Airtest script',
+ value: 'airtest_script'
+ }
+]);
+
const uploadFileChange = (rule, value, callback) => {
if(uploadFileList.value.length === 0) {
return callback(t('message.upload_required_tip'));
@@ -120,6 +142,7 @@ const uploadFileChange = (rule, value, callback) => {
};
const rules = reactive({
name: [{ required: true, message: t('validator.required'), trigger: 'blur' }],
+ type: [{ required: true, message: t('validator.required'), trigger: 'blur' }],
file: [{ required: true, validator: uploadFileChange, trigger: 'change' }]
});
@@ -143,6 +166,7 @@ const save = async () => {
if (valid) {
let params = new FormData();
params.append('name', ruleForm.name);
+ params.append('type', ruleForm.type);
params.append('description', ruleForm.description ? ruleForm.description : '');
params.append('file', uploadFile.value.raw);
let res = await playbookAddApi(workspace.value.id, params);
@@ -196,7 +220,7 @@ const jumpBack = () => {
}
}
}
- .el-input,.el-textarea {
+ .el-input,.el-textarea,.el-select {
width: 392px;
}
}
diff --git a/src/views/playbooks/index.vue b/src/views/playbooks/index.vue
index 9d30170..f842cd2 100644
--- a/src/views/playbooks/index.vue
+++ b/src/views/playbooks/index.vue
@@ -71,6 +71,14 @@
}}</span>
</div>
</template>
+ <template v-else-if="item.prop === 'type'">
+ <template v-if="scope.row[item.prop] === 'airtest_script'">
+ Airtest script
+ </template>
+ <template v-else>
+ {{ get(scope.row, 'type', '-') || '-' }}
+ </template>
+ </template>
<template v-else-if="item.prop === 'createUser'">
{{ get(scope.row, 'createUser.name', '-') || '-' }}
</template>
@@ -155,6 +163,12 @@ const tableTitle = [
sortable: 'custom',
},
{
+ width: 150,
+ prop: 'type',
+ label: t('overall.type'),
+ sortable: 'custom',
+ },
+ {
minWidth: 250,
prop: 'description',
label: t('playbook.description'),