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 |   92 +++++++++++++++++++++++++++++++++++++---------
 1 files changed, 74 insertions(+), 18 deletions(-)

diff --git a/src/views/project/components/ProjectEdit.vue b/src/views/project/components/ProjectEdit.vue
index 92a7ace..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,38 +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>
+              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>
@@ -49,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>
 
@@ -65,15 +100,20 @@
 
 <script>
 import { doEdit } from "@/api/project";
+import CodeEditor from "vue2-ace-editor";
 
 export default {
   name: "ProjectEdit",
+  components: {
+    CodeEditor,
+  },
   data() {
     return {
       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: "璇疯緭鍏ユ爣棰�" }],
@@ -81,14 +121,18 @@
       },
       title: "",
       dialogFormVisible: false,
+      edit: false,
     };
   },
-  created() {},
+  mounted() {},
   methods: {
     showEdit(row) {
+      this.activeName = "base";
       if (!row) {
         this.title = "娣诲姞";
+        this.edit = false;
       } else {
+        this.edit = true;
         this.title = "缂栬緫";
         this.form = Object.assign({}, row);
       }
@@ -98,13 +142,15 @@
       this.$refs["form"].resetFields();
       this.form = this.$options.data().form;
       this.dialogFormVisible = false;
-      this.$emit("fetch-data");
+      // this.$emit("fetch-data");
     },
     save() {
       this.$refs["form"].validate(async (valid) => {
         if (valid) {
-          const { msg } = await doEdit(this.form);
-          this.$baseMessage(msg, "success");
+          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");
@@ -117,6 +163,16 @@
     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