diff options
| author | hanyuxia <[email protected]> | 2024-11-07 13:36:35 +0800 |
|---|---|---|
| committer | hanyuxia <[email protected]> | 2024-11-07 13:36:35 +0800 |
| commit | e811f7f269da8e80670a975c790d6700a9f6a7e0 (patch) | |
| tree | 18f36ca8fbb208371dad8a395bde0d885d739dd2 /src | |
| parent | 720f1aaab501606e8b715fe53760edb345592d2b (diff) | |
feat: ASW-144 playbook编辑和列表界面增加 type 属性
Diffstat (limited to 'src')
| -rw-r--r-- | src/i18n/en.js | 4 | ||||
| -rw-r--r-- | src/i18n/zh.js | 4 | ||||
| -rw-r--r-- | src/views/playbooks/detail.vue | 28 | ||||
| -rw-r--r-- | src/views/playbooks/index.vue | 14 |
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'), |
