HelloWorld.vue 8.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334
  1. <template>
  2. <el-form
  3. ref="ruleForm"
  4. :model="ruleForm"
  5. :rules="rules"
  6. label-width="120px"
  7. class="demo-ruleForm"
  8. >
  9. <el-form-item label="群" prop="selected_group">
  10. <el-select v-model="ruleForm.selected_group" placeholder="群" filterable>
  11. <el-option
  12. v-for="item in ruleForm.group"
  13. :label="item.name"
  14. :value="item.chat_id"
  15. ></el-option>
  16. </el-select>
  17. </el-form-item>
  18. <el-form-item label="项目" prop="selected_project">
  19. <el-select v-model="ruleForm.selected_project" placeholder="项目">
  20. <el-option
  21. v-for="item in ruleForm.project"
  22. :label="item.label"
  23. :value="item.value"
  24. @click="changeProject(item.page,item.label)"
  25. ></el-option>
  26. </el-select>
  27. </el-form-item>
  28. <el-form-item label="页面" prop="selected_page">
  29. <el-select v-model="ruleForm.selected_page" placeholder="页面">
  30. <el-option
  31. v-for="item in ruleForm.page"
  32. :label="item.name"
  33. :value="item.value"
  34. ></el-option>
  35. </el-select>
  36. </el-form-item>
  37. <el-form-item label="分支" prop="selected_branch">
  38. <el-select
  39. v-model="ruleForm.selected_branch"
  40. placeholder="分支"
  41. filterable
  42. >
  43. <el-option
  44. v-for="item in ruleForm.branch"
  45. :label="item"
  46. :value="item"
  47. ></el-option>
  48. </el-select>
  49. </el-form-item>
  50. <el-form-item label="环境" prop="selected_mode">
  51. <el-select v-model="ruleForm.selected_mode" placeholder="环境">
  52. <el-option
  53. v-for="item in ruleForm.mode"
  54. :label="item.label"
  55. :value="item.value"
  56. @click="clickMode(item.label)"
  57. ></el-option>
  58. </el-select>
  59. </el-form-item>
  60. <el-form-item>
  61. <el-button
  62. type="primary"
  63. :loading="loading"
  64. @click="submitForm('ruleForm')"
  65. >发送飞书</el-button
  66. >
  67. </el-form-item>
  68. </el-form>
  69. </template>
  70. <script>
  71. import axios from "axios";
  72. export default {
  73. data() {
  74. return {
  75. url:'http://192.168.80.253:7777/',
  76. // url:'http://192.168.80.185:7777/',
  77. loading: false,
  78. ruleForm: {
  79. webhook:
  80. "https://open.feishu.cn/open-apis/bot/v2/hook/a924b6a5-86ef-4c76-a7e4-eb42056f70cc",
  81. region: "",
  82. resource: "",
  83. desc: "",
  84. selected_group:"",
  85. selected_project: "",
  86. selected_branch: "",
  87. selected_mode: "",
  88. selected_page: "",
  89. project_name: "",
  90. mode_name: "",
  91. group:[],
  92. page: [],
  93. mode: [
  94. {
  95. label: "正式",
  96. value: "PRODUCTION",
  97. },
  98. {
  99. label: "预发布",
  100. value: "PRE",
  101. },
  102. {
  103. label: "测试",
  104. value: "TEST",
  105. },
  106. ],
  107. branch: [],
  108. project: [
  109. {
  110. label: "票圈vlog",
  111. value: "vlog",
  112. page: [
  113. {
  114. name: "首页",
  115. value: "pages/category",
  116. },
  117. {
  118. name: "资源传输",
  119. value:
  120. "package-clip-tool/resource-transport/resource-transport",
  121. },
  122. ],
  123. },
  124. {
  125. value: "video",
  126. label: "票圈video",
  127. page: [
  128. {
  129. name: "首页",
  130. value: "pages/category",
  131. },
  132. {
  133. name: "资源传输",
  134. value:
  135. "package-clip-tool/resource-transport/resource-transport",
  136. },
  137. ],
  138. },
  139. {
  140. value: "shortVideo",
  141. label: "票圈短视频",
  142. page: [
  143. {
  144. name: "首页",
  145. value: "pages/category",
  146. },
  147. {
  148. name: "资源传输",
  149. value:
  150. "package-clip-tool/resource-transport/resource-transport",
  151. },
  152. ],
  153. },
  154. {
  155. value: "longVideo",
  156. label: "票圈内容精选",
  157. page: [
  158. {
  159. name: "首页",
  160. value: "pages/category",
  161. },
  162. {
  163. name: "资源传输",
  164. value:
  165. "package-clip-tool/resource-transport/resource-transport",
  166. },
  167. ],
  168. },
  169. {
  170. value: "flashSound",
  171. label: "闪音卡点",
  172. page: [
  173. {
  174. name: "首页",
  175. value: "pages/post/post",
  176. },
  177. ],
  178. },
  179. {
  180. value: "gaoxiao",
  181. label: "智能剪辑",
  182. page: [
  183. {
  184. name: "首页",
  185. value: "pages/post/post",
  186. },
  187. ],
  188. },
  189. {
  190. value: "happyStar",
  191. label: "票圈剪辑",
  192. page: [
  193. {
  194. name: "首页",
  195. value: "pages/post/post",
  196. },
  197. ],
  198. },
  199. {
  200. label: "好看视频",
  201. value: "goodLook",
  202. page: [
  203. {
  204. name: "首页",
  205. value: "pages/category",
  206. },
  207. {
  208. name: "资源传输",
  209. value:
  210. "package-clip-tool/resource-transport/resource-transport",
  211. },
  212. ],
  213. },
  214. {
  215. label: "万能影视屋",
  216. value: "movieHouse",
  217. page: [
  218. {
  219. name: "首页",
  220. value: "pages/category",
  221. },
  222. {
  223. name: "资源传输",
  224. value:
  225. "package-clip-tool/resource-transport/resource-transport",
  226. },
  227. ],
  228. },
  229. ],
  230. },
  231. rules: {
  232. selected_group: [
  233. {
  234. required: true,
  235. message: "不能为空",
  236. },
  237. ],
  238. selected_project: [
  239. {
  240. required: true,
  241. message: "不能为空",
  242. },
  243. ],
  244. selected_page: [
  245. {
  246. required: true,
  247. message: "不能为空",
  248. },
  249. ],
  250. selected_mode: [
  251. {
  252. required: true,
  253. message: "不能为空",
  254. },
  255. ],
  256. selected_branch: [
  257. {
  258. required: true,
  259. message: "不能为空",
  260. },
  261. ],
  262. },
  263. };
  264. },
  265. mounted() {
  266. this.getBranch();
  267. this.getGroup();
  268. },
  269. methods: {
  270. changeProject(item,val) {
  271. this.ruleForm.page = item;
  272. this.ruleForm.selected_page = item[0].value;
  273. this.ruleForm.project_name = val;
  274. },
  275. clickMode(val) {
  276. this.ruleForm.mode_name = val;
  277. },
  278. // 获取群
  279. getGroup(){
  280. axios.get(this.url+"getGroup").then((res) => {
  281. res = res.data;
  282. if (res.code == 0) {
  283. this.ruleForm.group = res.data;
  284. }
  285. });
  286. },
  287. // 获取分支
  288. getBranch() {
  289. axios.get(this.url+"getBranch").then((res) => {
  290. res = res.data;
  291. if (res.code == 0) {
  292. this.ruleForm.branch = res.data;
  293. }
  294. });
  295. },
  296. submitForm(formName) {
  297. this.$refs[formName].validate((valid) => {
  298. if (valid) {
  299. this.loading = true;
  300. axios
  301. .post(this.url+"send", {
  302. project: this.ruleForm.selected_project,
  303. chat_id: this.ruleForm.selected_group,
  304. mode: this.ruleForm.selected_mode,
  305. page: this.ruleForm.selected_page,
  306. branch: this.ruleForm.selected_branch,
  307. project_name: this.ruleForm.project_name,
  308. mode_name: this.ruleForm.mode_name,
  309. })
  310. .then((res) => {
  311. res = res.data;
  312. if (res.code == 0) {
  313. alert("发送成功");
  314. } else {
  315. alert(res.msg);
  316. }
  317. this.loading = false;
  318. })
  319. .error(() => {
  320. alert("网络错误");
  321. this.loading = false;
  322. });
  323. } else {
  324. console.log("error submit!!");
  325. return false;
  326. }
  327. });
  328. },
  329. },
  330. };
  331. </script>