From e9dc03b62fea3db1b2029a2a485c3e18caac6a43 Mon Sep 17 00:00:00 2001 From: zhangzengfei <zhangzengfei@smartai.com> Date: 星期二, 07 六月 2022 10:31:53 +0800 Subject: [PATCH] 添加文件类型 --- src/views/project/components/ProjectEdit.vue | 137 ++++++++++++++++++++++++++++++++------------- 1 files changed, 98 insertions(+), 39 deletions(-) diff --git a/src/views/project/components/ProjectEdit.vue b/src/views/project/components/ProjectEdit.vue index d2740b4..cdbf54a 100644 --- a/src/views/project/components/ProjectEdit.vue +++ b/src/views/project/components/ProjectEdit.vue @@ -2,7 +2,7 @@ <el-dialog :title="title" :visible.sync="dialogFormVisible" - width="500px" + width="550px" :close-on-click-modal="false" @close="close" > @@ -10,35 +10,55 @@ <el-tab-pane label="鍩虹淇℃伅" name="base"> <el-form ref="form" :model="form" :rules="rules" label-width="80px"> <el-form-item label="椤圭洰鍚嶇О" prop="name"> - <el-input v-model.trim="form.name" autocomplete="off"></el-input> + <el-input v-model.trim="form.name" :disabled="edit"></el-input> </el-form-item> <el-form-item label="椤圭洰鍦板潃" prop="srcUrl"> - <el-input v-model.trim="form.srcUrl" autocomplete="off"></el-input> + <el-input v-model.trim="form.srcUrl"></el-input> </el-form-item> <el-form-item label="椤圭洰鐢ㄦ埛" prop="srcUser"> - <el-input v-model.trim="form.srcUser" autocomplete="off"></el-input> + <el-input v-model.trim="form.srcUser"></el-input> </el-form-item> <el-form-item label="椤圭洰瀵嗙爜" prop="srcPassword"> - <el-input v-model.trim="form.srcPassword" autocomplete="off"></el-input> + <el-input + v-model.trim="form.srcPassword" + auto-complete="new-password" + show-password + > + </el-input> </el-form-item> <el-form-item label="椤圭洰鎻忚堪" prop="desc"> - <el-input v-model.trim="form.desc" autocomplete="off"></el-input> + <el-input v-model="form.desc"></el-input> </el-form-item> <el-form-item label="缂栬瘧鍒嗘敮" prop="branch"> - <el-input v-model.trim="form.branch" autocomplete="off"></el-input> + <el-input v-model.trim="form.branch" :disabled="edit"></el-input> </el-form-item> <el-form-item label="缂栬瘧鏋舵瀯" prop="arch"> <el-radio-group v-model="form.arch"> - <el-radio label="x86">X86</el-radio> - <el-radio label="arm">ARM</el-radio> + <el-radio label="amd64">x86_64</el-radio> + <el-radio label="arm64">arm_64</el-radio> </el-radio-group> </el-form-item> <el-form-item label="椤圭洰绫诲瀷" prop="type"> <el-radio-group v-model="form.type"> + <el-radio label="os">AIOS</el-radio> <el-radio label="sys">绯荤粺鍖�</el-radio> <el-radio label="app">搴旂敤鍖�</el-radio> <el-radio label="algo">绠楁硶鍖�</el-radio> </el-radio-group> + </el-form-item> + <el-form-item + v-show="form.type == 'algo' || form.type == 'os'" + label="鏄惧崱绫诲瀷" + prop="brand" + > + <el-input v-model="form.brand"></el-input> + </el-form-item> + <el-form-item + v-show="form.type == 'algo' || form.type == 'os'" + label="鏂囦欢绫诲瀷" + prop="fileType" + > + <el-input v-model="form.fileType"></el-input> </el-form-item> <el-form-item label="鑷姩鎵撳寘" prop="autoBuild"> <el-switch v-model="form.autoBuild"></el-switch> @@ -46,10 +66,28 @@ </el-form> </el-tab-pane> <el-tab-pane label="缂栬瘧鑴氭湰" name="build"> - <textarea v-model="form.buildScript" cols="60" rows="10"></textarea> + <!-- <textarea v-model="form.buildScript" cols="60" rows="10"></textarea> --> + <code-editor + v-if="activeName == 'build'" + v-model="form.buildScript" + lang="sh" + theme="chrome" + width="500" + height="456" + @init="editorInit" + ></code-editor> </el-tab-pane> <el-tab-pane label="鎵撳寘鑴氭湰" name="pack"> - <textarea v-model="form.packScript" cols="60" rows="10"></textarea> + <!-- <textarea v-model="form.packScript" cols="60" rows="10"></textarea> --> + <code-editor + v-if="activeName == 'pack'" + v-model="form.packScript" + lang="sh" + theme="chrome" + width="500" + height="456" + @init="editorInit" + ></code-editor> </el-tab-pane> </el-tabs> @@ -61,59 +99,80 @@ </template> <script> -import { doEdit } from '@/api/project' +import { doEdit } from "@/api/project"; +import CodeEditor from "vue2-ace-editor"; export default { - name: 'ProjectEdit', + name: "ProjectEdit", + components: { + CodeEditor, + }, data() { return { - activeName: 'base', + activeName: "base", form: { - title: '', - author: '', + packScript: + "#!/bin/sh\n#鎵撳寘寮�濮嬩細鍦ㄩ」鐩笅鍒涘缓integrate-build鐨勪复鏃舵枃浠跺す\n#鎵撳寘鑴氭湰鎵ц璺緞涓洪」鐩笅鐨刬ntegrate-build鏂囦欢澶瑰唴\n#闇�澶嶅埗涓婄骇鐩綍鐨勭紪璇戝畬鎴愮殑鐩爣鏂囦欢鍒板綋鍓嶄綅缃甛n", + buildScript: "#!/bin/sh\n", }, rules: { - title: [{ required: true, trigger: 'blur', message: '璇疯緭鍏ユ爣棰�' }], - author: [{ required: true, trigger: 'blur', message: '璇疯緭鍏ヤ綔鑰�' }], + title: [{ required: true, trigger: "blur", message: "璇疯緭鍏ユ爣棰�" }], + author: [{ required: true, trigger: "blur", message: "璇疯緭鍏ヤ綔鑰�" }], }, - title: '', + title: "", dialogFormVisible: false, - } + edit: false, + }; }, - created() { }, + mounted() {}, methods: { showEdit(row) { + this.activeName = "base"; if (!row) { - this.title = '娣诲姞' + this.title = "娣诲姞"; + this.edit = false; } else { - this.title = '缂栬緫' - this.form = Object.assign({}, row) + this.edit = true; + this.title = "缂栬緫"; + this.form = Object.assign({}, row); } - this.dialogFormVisible = true + this.dialogFormVisible = true; }, close() { - this.$refs['form'].resetFields() - this.form = this.$options.data().form - this.dialogFormVisible = false - this.$emit('fetch-data') + this.$refs["form"].resetFields(); + this.form = this.$options.data().form; + this.dialogFormVisible = false; + // this.$emit("fetch-data"); }, save() { - this.$refs['form'].validate(async (valid) => { + this.$refs["form"].validate(async (valid) => { if (valid) { - const { msg } = await doEdit(this.form) - this.$baseMessage(msg, 'success') - this.$refs['form'].resetFields() - this.dialogFormVisible = false - this.$emit('fetch-data') - this.form = this.$options.data().form + const rsp = await doEdit(this.form); + if (rsp && rsp.success) { + this.$baseMessage(rsp.msg, "success"); + } + this.$refs["form"].resetFields(); + this.dialogFormVisible = false; + this.$emit("fetch-data"); + this.form = this.$options.data().form; } else { - return false + return false; } - }) + }); }, handleClick(tab, event) { // console.log(tab, event) }, + editorInit() { + require("brace/ext/language_tools"); //language extension prerequsite... + require("brace/mode/sh"); + require("brace/theme/chrome"); + }, }, -} +}; </script> +<style scoped> +.el-radio { + margin-right: 20 px; +} +</style> -- Gitblit v1.8.0