gitAlgorithms.vue 9.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277
  1. <template>
  2. <div class="gitAlgorithmsPanel">
  3. <el-row>
  4. <el-col :span="16" :offset="4">
  5. <el-form
  6. ref="form"
  7. :model="form"
  8. :rules="rules"
  9. label-width="160px"
  10. >
  11. <el-form-item label="算法名称:" prop="algorithmName">
  12. <el-input
  13. placeholder="请输入"
  14. maxlength="60"
  15. v-autoTrim="{ obj: form, key: 'algorithmName' }"
  16. v-model="form.algorithmName"
  17. >
  18. </el-input>
  19. </el-form-item>
  20. <el-form-item label="算法描述:" prop="description">
  21. <el-input
  22. placeholder="请输入"
  23. maxlength="200"
  24. v-autoTrim="{ obj: form, key: 'description' }"
  25. v-model="form.description"
  26. >
  27. </el-input>
  28. </el-form-item>
  29. <el-form-item label="地址:" prop="gitUrl">
  30. <el-input
  31. placeholder="请输入"
  32. maxlength="100"
  33. v-autoTrim="{ obj: form, key: 'gitUrl' }"
  34. v-model="form.gitUrl"
  35. >
  36. </el-input>
  37. </el-form-item>
  38. <el-form-item label="用户名:" prop="gitUserName">
  39. <el-input
  40. placeholder="请输入"
  41. maxlength="30"
  42. v-autoTrim="{ obj: form, key: 'gitUserName' }"
  43. v-model="form.gitUserName"
  44. >
  45. </el-input>
  46. </el-form-item>
  47. <el-form-item label="密码:" prop="gitPassword">
  48. <el-input
  49. placeholder="请输入"
  50. maxlength="30"
  51. type="password"
  52. v-autoTrim="{ obj: form, key: 'gitPassword' }"
  53. v-model="form.gitPassword"
  54. >
  55. <el-button slot="suffix" type="primary" @click="testConnection">测试链接</el-button>
  56. </el-input>
  57. </el-form-item>
  58. </el-form>
  59. <div class="btns">
  60. <el-button
  61. type="primary"
  62. @click="save"
  63. >保存</el-button
  64. >
  65. <el-button
  66. v-if="form.share === '0' || form.share === '1'"
  67. type="primary"
  68. @click="saveOther"
  69. >另存为</el-button
  70. >
  71. <el-button type="primary" plain @click="cancel"
  72. >取消</el-button
  73. >
  74. </div>
  75. </el-col>
  76. </el-row>
  77. </div>
  78. </template>
  79. <script>
  80. //import from '';
  81. export default {
  82. name: "gitAlgorithms", // 仓库算法详情
  83. components: {},
  84. data() {
  85. return {
  86. form: {
  87. id: "",
  88. algorithmName: "", // 算法名称
  89. description: "", // 算法描述
  90. gitUrl: "", // 地址
  91. gitUserName: "", //仓库用户名
  92. gitPassword: "", //仓库密码
  93. uploadMode: "2", // 方式
  94. },
  95. type: "1",
  96. rules: {
  97. algorithmName: [{ required: true, message: "请输入", trigger: "blur" }],
  98. description: [{ required: true, message: "请输入", trigger: "blur" }],
  99. gitUrl: [{ required: true, message: "请输入", trigger: "blur" }],
  100. gitUserName: [{ required: true, message: "请输入", trigger: "blur" }],
  101. gitPassword: [{ required: true, message: "请输入", trigger: "blur" }],
  102. },
  103. };
  104. },
  105. mounted(){
  106. let id = this.$route.query.id;
  107. if (id) {
  108. this.form.share = this.$route.query.share;
  109. this.$axios({
  110. method: "post",
  111. url: this.$api.algorithmsLibrary.selectDetailsById,
  112. data: {
  113. id,
  114. },
  115. }).then((res) => {
  116. if (res.code == 200 && res.info) {
  117. this.form = res.info;
  118. } else {
  119. this.$message.error(res.message || "获取信息失败");
  120. }
  121. });
  122. }
  123. },
  124. methods: {
  125. testConnection(){
  126. let validateFieldList = []
  127. this.$refs.form.validateField(['gitUserName','gitPassword','gitUrl'],async errorMsg=>{
  128. if(!errorMsg){
  129. validateFieldList.push(errorMsg)
  130. if(validateFieldList.length == 3 && validateFieldList.every(item=>item ==='')){
  131. this.$axios({
  132. method: "POST",
  133. url: this.$api.algorithmsLibrary.testConnection,
  134. data:{
  135. gitUrl: this.form.gitUrl,
  136. gitUserName: this.form.gitUserName,
  137. gitPassword: this.form.gitPassword,
  138. }
  139. }).then(res=>{
  140. if(res.code == 200) {
  141. this.$message.success("测试成功");
  142. } else {
  143. this.$message.error(res.message || "测试失败");
  144. }
  145. })
  146. }
  147. }else{
  148. return false
  149. }
  150. })
  151. return
  152. },
  153. save(){
  154. this.$refs.form.validate((valid) => {
  155. if (valid) {
  156. this.$axios({
  157. method: "post",
  158. url: this.$api.algorithmsLibrary.addOrUpdate,
  159. data: {
  160. ...this.form,
  161. },
  162. }).then((res) => {
  163. if (res.code == 200) {
  164. this.$message.success("保存成功");
  165. this.cancel();
  166. } else {
  167. this.$message.error(res.message || "保存失败");
  168. }
  169. });
  170. }
  171. });
  172. },
  173. saveOther(){
  174. this.$refs.form.validate((valid) => {
  175. if (valid) {
  176. let data = {...this.form}
  177. data.id = ''
  178. this.$axios({
  179. method: "post",
  180. url: this.$api.algorithmsLibrary.addOrUpdate,
  181. data: data,
  182. }).then((res) => {
  183. if (res.code == 200) {
  184. this.$message.success("保存成功");
  185. this.cancel();
  186. } else {
  187. this.$message.error(res.message || "保存失败");
  188. }
  189. });
  190. }
  191. });
  192. },
  193. cancel(){
  194. this.$router.replace({ path: "/algorithmsLibraryList" });
  195. }
  196. /* typeChange(val) {
  197. if (val === "1") {
  198. this.rules = {
  199. name: [
  200. { required: true, message: "请输入", trigger: "blur" },
  201. ],
  202. sf: [
  203. {
  204. required: true,
  205. message: "请选择",
  206. trigger: "change",
  207. },
  208. ],
  209. type: [
  210. {
  211. required: true,
  212. message: "请选择",
  213. trigger: "change",
  214. },
  215. ],
  216. };
  217. } else {
  218. this.rules = {
  219. name: [
  220. { required: true, message: "请输入", trigger: "blur" },
  221. ],
  222. type: [
  223. {
  224. required: true,
  225. message: "请选择",
  226. trigger: "change",
  227. },
  228. ],
  229. add: [
  230. { required: true, message: "请输入", trigger: "blur" },
  231. ],
  232. add1: [
  233. { required: true, message: "请输入", trigger: "blur" },
  234. ],
  235. add2: [
  236. { required: true, message: "请输入", trigger: "blur" },
  237. ],
  238. };
  239. }
  240. this.$nextTick(() => {
  241. this.$refs["form"].clearValidate();
  242. });
  243. this.type = val;
  244. }, */
  245. },
  246. };
  247. </script>
  248. <style lang='less' scoped>
  249. .gitAlgorithmsPanel {
  250. padding: 45px 30px 0;
  251. .el-form {
  252. /deep/ .el-input,
  253. .el-select {
  254. width: 100%;
  255. }
  256. /deep/ .el-input__suffix{
  257. right: 0;
  258. }
  259. }
  260. .testLinkPanel {
  261. margin-left: 160px;
  262. }
  263. .btns {
  264. padding-top: 90px;
  265. text-align: center;
  266. }
  267. }
  268. </style>